-1
Cargo.lock
-1
Cargo.lock
+1
-1
README.md
+1
-1
README.md
···- `jacquard-oauth`: atproto OAuth implementation [](https://crates.io/crates/jacquard-oauth) [](https://docs.rs/jacquard-oauth)- `jacquard-identity`: Identity resolution [](https://crates.io/crates/jacquard-identity) [](https://docs.rs/jacquard-identity)- `jacquard-lexicon`: Lexicon parsing and code generation [](https://crates.io/crates/jacquard-lexicon) [](https://docs.rs/jacquard-lexicon)-- `jacquard-derive`: Derive macros for lexicon types [](https://crates.io/crates/jacquard-derive) [](https://docs.rs/jacquard-derive)
···- `jacquard-oauth`: atproto OAuth implementation [](https://crates.io/crates/jacquard-oauth) [](https://docs.rs/jacquard-oauth)- `jacquard-identity`: Identity resolution [](https://crates.io/crates/jacquard-identity) [](https://docs.rs/jacquard-identity)- `jacquard-lexicon`: Lexicon parsing and code generation [](https://crates.io/crates/jacquard-lexicon) [](https://docs.rs/jacquard-lexicon)+- `jacquard-derive`: Macros for lexicon types [](https://crates.io/crates/jacquard-derive) [](https://docs.rs/jacquard-derive)
+38
crates/jacquard-api/src/app_blebbit/authr/folder/record.rs
+38
crates/jacquard-api/src/app_blebbit/authr/folder/record.rs
···
+38
crates/jacquard-api/src/app_blebbit/authr/group/record.rs
+38
crates/jacquard-api/src/app_blebbit/authr/group/record.rs
···
+38
crates/jacquard-api/src/app_blebbit/authr/page/record.rs
+38
crates/jacquard-api/src/app_blebbit/authr/page/record.rs
···
+38
crates/jacquard-api/src/app_bsky/actor/profile.rs
+38
crates/jacquard-api/src/app_bsky/actor/profile.rs
···
+38
crates/jacquard-api/src/app_bsky/actor/status.rs
+38
crates/jacquard-api/src/app_bsky/actor/status.rs
···
+35
-11
crates/jacquard-api/src/app_bsky/feed/generator.rs
+35
-11
crates/jacquard-api/src/app_bsky/feed/generator.rs
···///Record declaring of the existence of a feed generator, and containing metadata about it. The record can exist in any repository.······
···///Record declaring of the existence of a feed generator, and containing metadata about it. The record can exist in any repository.+serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq, jacquard_derive::IntoStatic,······+serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq, jacquard_derive::IntoStatic,
+38
crates/jacquard-api/src/app_bsky/feed/like.rs
+38
crates/jacquard-api/src/app_bsky/feed/like.rs
···
+38
crates/jacquard-api/src/app_bsky/feed/post.rs
+38
crates/jacquard-api/src/app_bsky/feed/post.rs
···
+38
crates/jacquard-api/src/app_bsky/feed/postgate.rs
+38
crates/jacquard-api/src/app_bsky/feed/postgate.rs
···
+38
crates/jacquard-api/src/app_bsky/feed/repost.rs
+38
crates/jacquard-api/src/app_bsky/feed/repost.rs
···
+38
crates/jacquard-api/src/app_bsky/feed/threadgate.rs
+38
crates/jacquard-api/src/app_bsky/feed/threadgate.rs
···
+38
crates/jacquard-api/src/app_bsky/graph/block.rs
+38
crates/jacquard-api/src/app_bsky/graph/block.rs
···
+38
crates/jacquard-api/src/app_bsky/graph/follow.rs
+38
crates/jacquard-api/src/app_bsky/graph/follow.rs
···
+38
crates/jacquard-api/src/app_bsky/graph/list.rs
+38
crates/jacquard-api/src/app_bsky/graph/list.rs
···
+38
crates/jacquard-api/src/app_bsky/graph/listblock.rs
+38
crates/jacquard-api/src/app_bsky/graph/listblock.rs
···
+38
crates/jacquard-api/src/app_bsky/graph/listitem.rs
+38
crates/jacquard-api/src/app_bsky/graph/listitem.rs
···
+38
crates/jacquard-api/src/app_bsky/graph/starterpack.rs
+38
crates/jacquard-api/src/app_bsky/graph/starterpack.rs
···
+38
crates/jacquard-api/src/app_bsky/graph/verification.rs
+38
crates/jacquard-api/src/app_bsky/graph/verification.rs
···
+38
crates/jacquard-api/src/app_bsky/labeler/service.rs
+38
crates/jacquard-api/src/app_bsky/labeler/service.rs
···
+38
crates/jacquard-api/src/app_bsky/notification/declaration.rs
+38
crates/jacquard-api/src/app_bsky/notification/declaration.rs
···
+38
crates/jacquard-api/src/app_ocho/edu/verification.rs
+38
crates/jacquard-api/src/app_ocho/edu/verification.rs
···
+38
crates/jacquard-api/src/app_ocho/plugin/service.rs
+38
crates/jacquard-api/src/app_ocho/plugin/service.rs
···
+38
crates/jacquard-api/src/beauty_cybernetic/trustcow/review.rs
+38
crates/jacquard-api/src/beauty_cybernetic/trustcow/review.rs
···
+38
crates/jacquard-api/src/beauty_cybernetic/trustcow/transaction.rs
+38
crates/jacquard-api/src/beauty_cybernetic/trustcow/transaction.rs
···
+38
crates/jacquard-api/src/beauty_cybernetic/trustcow/warrant.rs
+38
crates/jacquard-api/src/beauty_cybernetic/trustcow/warrant.rs
···
+38
crates/jacquard-api/src/blog_pckt/blog.rs
+38
crates/jacquard-api/src/blog_pckt/blog.rs
···
+38
crates/jacquard-api/src/blog_pckt/post.rs
+38
crates/jacquard-api/src/blog_pckt/post.rs
···
+38
crates/jacquard-api/src/blog_pckt/publication.rs
+38
crates/jacquard-api/src/blog_pckt/publication.rs
···
+38
crates/jacquard-api/src/blog_pckt/theme.rs
+38
crates/jacquard-api/src/blog_pckt/theme.rs
···
+38
crates/jacquard-api/src/blue__2048/game.rs
+38
crates/jacquard-api/src/blue__2048/game.rs
···
+38
crates/jacquard-api/src/blue__2048/key/game.rs
+38
crates/jacquard-api/src/blue__2048/key/game.rs
···
+38
crates/jacquard-api/src/blue__2048/key/player/stats.rs
+38
crates/jacquard-api/src/blue__2048/key/player/stats.rs
···
+38
crates/jacquard-api/src/blue__2048/player/profile.rs
+38
crates/jacquard-api/src/blue__2048/player/profile.rs
···
+38
crates/jacquard-api/src/blue__2048/player/stats.rs
+38
crates/jacquard-api/src/blue__2048/player/stats.rs
···
+38
crates/jacquard-api/src/blue__2048/verification/game.rs
+38
crates/jacquard-api/src/blue__2048/verification/game.rs
···
+38
crates/jacquard-api/src/blue__2048/verification/stats.rs
+38
crates/jacquard-api/src/blue__2048/verification/stats.rs
···
+38
crates/jacquard-api/src/blue_atplane/fav_client.rs
+38
crates/jacquard-api/src/blue_atplane/fav_client.rs
···
+38
crates/jacquard-api/src/blue_linkat/board.rs
+38
crates/jacquard-api/src/blue_linkat/board.rs
···
+38
crates/jacquard-api/src/blue_zio/atfile/lock.rs
+38
crates/jacquard-api/src/blue_zio/atfile/lock.rs
···
+38
crates/jacquard-api/src/buzz_bookhive/book.rs
+38
crates/jacquard-api/src/buzz_bookhive/book.rs
···
+38
crates/jacquard-api/src/buzz_bookhive/buzz.rs
+38
crates/jacquard-api/src/buzz_bookhive/buzz.rs
···
+38
crates/jacquard-api/src/buzz_bookhive/hive_book.rs
+38
crates/jacquard-api/src/buzz_bookhive/hive_book.rs
···
+38
crates/jacquard-api/src/chat_bsky/actor/declaration.rs
+38
crates/jacquard-api/src/chat_bsky/actor/declaration.rs
···
+38
crates/jacquard-api/src/com_atproto/lexicon/schema.rs
+38
crates/jacquard-api/src/com_atproto/lexicon/schema.rs
···
+38
crates/jacquard-api/src/com_crabdance/nandi/post.rs
+38
crates/jacquard-api/src/com_crabdance/nandi/post.rs
···
+38
crates/jacquard-api/src/com_shinolabs/pinksea/oekaki.rs
+38
crates/jacquard-api/src/com_shinolabs/pinksea/oekaki.rs
···
+38
crates/jacquard-api/src/com_shinolabs/pinksea/profile.rs
+38
crates/jacquard-api/src/com_shinolabs/pinksea/profile.rs
···
+38
crates/jacquard-api/src/com_whtwnd/blog/entry.rs
+38
crates/jacquard-api/src/com_whtwnd/blog/entry.rs
···
+38
crates/jacquard-api/src/community_lexicon/bookmarks/bookmark.rs
+38
crates/jacquard-api/src/community_lexicon/bookmarks/bookmark.rs
···
+38
crates/jacquard-api/src/community_lexicon/calendar/event.rs
+38
crates/jacquard-api/src/community_lexicon/calendar/event.rs
···
+38
crates/jacquard-api/src/community_lexicon/calendar/rsvp.rs
+38
crates/jacquard-api/src/community_lexicon/calendar/rsvp.rs
···
+38
crates/jacquard-api/src/community_lexicon/interaction/like.rs
+38
crates/jacquard-api/src/community_lexicon/interaction/like.rs
···
+38
crates/jacquard-api/src/community_lexicon/payments/web_monetization.rs
+38
crates/jacquard-api/src/community_lexicon/payments/web_monetization.rs
···
+38
crates/jacquard-api/src/dev_baileytownsend/health/calories.rs
+38
crates/jacquard-api/src/dev_baileytownsend/health/calories.rs
···
+38
crates/jacquard-api/src/dev_baileytownsend/health/rings.rs
+38
crates/jacquard-api/src/dev_baileytownsend/health/rings.rs
···
+38
crates/jacquard-api/src/dev_baileytownsend/health/steps.rs
+38
crates/jacquard-api/src/dev_baileytownsend/health/steps.rs
···
+38
crates/jacquard-api/src/dev_baileytownsend/health/workout.rs
+38
crates/jacquard-api/src/dev_baileytownsend/health/workout.rs
···
+38
crates/jacquard-api/src/dev_fudgeu/experimental/atforumv1/feed/post.rs
+38
crates/jacquard-api/src/dev_fudgeu/experimental/atforumv1/feed/post.rs
···
+38
crates/jacquard-api/src/dev_fudgeu/experimental/atforumv1/feed/reply.rs
+38
crates/jacquard-api/src/dev_fudgeu/experimental/atforumv1/feed/reply.rs
···
+38
crates/jacquard-api/src/dev_fudgeu/experimental/atforumv1/forum/announcement.rs
+38
crates/jacquard-api/src/dev_fudgeu/experimental/atforumv1/forum/announcement.rs
···
+38
crates/jacquard-api/src/dev_fudgeu/experimental/atforumv1/forum/category.rs
+38
crates/jacquard-api/src/dev_fudgeu/experimental/atforumv1/forum/category.rs
···
+38
crates/jacquard-api/src/dev_fudgeu/experimental/atforumv1/forum/group.rs
+38
crates/jacquard-api/src/dev_fudgeu/experimental/atforumv1/forum/group.rs
···
+38
crates/jacquard-api/src/dev_fudgeu/experimental/atforumv1/forum/identity.rs
+38
crates/jacquard-api/src/dev_fudgeu/experimental/atforumv1/forum/identity.rs
···
+38
crates/jacquard-api/src/dev_ocbwoy3/blueboard/board.rs
+38
crates/jacquard-api/src/dev_ocbwoy3/blueboard/board.rs
···
+38
crates/jacquard-api/src/dev_ocbwoy3/blueboard/post.rs
+38
crates/jacquard-api/src/dev_ocbwoy3/blueboard/post.rs
···
+38
crates/jacquard-api/src/dev_regnault/webfishing/savefile.rs
+38
crates/jacquard-api/src/dev_regnault/webfishing/savefile.rs
···
+38
crates/jacquard-api/src/fyi_unravel/frontpage/comment.rs
+38
crates/jacquard-api/src/fyi_unravel/frontpage/comment.rs
···
+38
crates/jacquard-api/src/fyi_unravel/frontpage/post.rs
+38
crates/jacquard-api/src/fyi_unravel/frontpage/post.rs
···
+38
crates/jacquard-api/src/fyi_unravel/frontpage/vote.rs
+38
crates/jacquard-api/src/fyi_unravel/frontpage/vote.rs
···
+38
crates/jacquard-api/src/moe_karashiiro/kpaste/paste.rs
+38
crates/jacquard-api/src/moe_karashiiro/kpaste/paste.rs
···
+38
crates/jacquard-api/src/my_skylights/rel.rs
+38
crates/jacquard-api/src/my_skylights/rel.rs
···
+38
crates/jacquard-api/src/net_aftertheinter/coolthingtwo.rs
+38
crates/jacquard-api/src/net_aftertheinter/coolthingtwo.rs
···
+38
crates/jacquard-api/src/net_anisota/beta/game/collection.rs
+38
crates/jacquard-api/src/net_anisota/beta/game/collection.rs
···
+38
crates/jacquard-api/src/net_anisota/beta/game/inventory.rs
+38
crates/jacquard-api/src/net_anisota/beta/game/inventory.rs
···
+38
crates/jacquard-api/src/net_anisota/beta/game/log.rs
+38
crates/jacquard-api/src/net_anisota/beta/game/log.rs
···
+38
crates/jacquard-api/src/net_anisota/beta/game/pack.rs
+38
crates/jacquard-api/src/net_anisota/beta/game/pack.rs
···
+38
crates/jacquard-api/src/net_anisota/beta/game/progress.rs
+38
crates/jacquard-api/src/net_anisota/beta/game/progress.rs
···
+38
crates/jacquard-api/src/net_anisota/beta/game/session.rs
+38
crates/jacquard-api/src/net_anisota/beta/game/session.rs
···
+38
crates/jacquard-api/src/net_anisota/feed/draft.rs
+38
crates/jacquard-api/src/net_anisota/feed/draft.rs
···
+38
crates/jacquard-api/src/net_anisota/feed/like.rs
+38
crates/jacquard-api/src/net_anisota/feed/like.rs
···
+38
crates/jacquard-api/src/net_anisota/feed/list.rs
+38
crates/jacquard-api/src/net_anisota/feed/list.rs
···
+38
crates/jacquard-api/src/net_anisota/feed/list_item.rs
+38
crates/jacquard-api/src/net_anisota/feed/list_item.rs
···
+38
crates/jacquard-api/src/net_anisota/feed/post.rs
+38
crates/jacquard-api/src/net_anisota/feed/post.rs
···
+38
crates/jacquard-api/src/net_anisota/feed/repost.rs
+38
crates/jacquard-api/src/net_anisota/feed/repost.rs
···
+38
crates/jacquard-api/src/net_anisota/graph/list_mute.rs
+38
crates/jacquard-api/src/net_anisota/graph/list_mute.rs
···
+38
crates/jacquard-api/src/net_anisota/graph/mute.rs
+38
crates/jacquard-api/src/net_anisota/graph/mute.rs
···
+38
crates/jacquard-api/src/net_bnewbold/demo/mushies.rs
+38
crates/jacquard-api/src/net_bnewbold/demo/mushies.rs
···
+38
crates/jacquard-api/src/net_bnewbold/demo/mushroom.rs
+38
crates/jacquard-api/src/net_bnewbold/demo/mushroom.rs
···
+38
crates/jacquard-api/src/net_bnewbold/m.rs
+38
crates/jacquard-api/src/net_bnewbold/m.rs
···
+38
crates/jacquard-api/src/net_mmatt/right/now.rs
+38
crates/jacquard-api/src/net_mmatt/right/now.rs
···
+38
crates/jacquard-api/src/net_mmatt/vitals/car.rs
+38
crates/jacquard-api/src/net_mmatt/vitals/car.rs
···
+38
crates/jacquard-api/src/network_slices/actor/profile.rs
+38
crates/jacquard-api/src/network_slices/actor/profile.rs
···
+38
crates/jacquard-api/src/network_slices/lexicon.rs
+38
crates/jacquard-api/src/network_slices/lexicon.rs
···
+38
crates/jacquard-api/src/network_slices/slice.rs
+38
crates/jacquard-api/src/network_slices/slice.rs
···
+38
crates/jacquard-api/src/network_slices/waitlist/invite.rs
+38
crates/jacquard-api/src/network_slices/waitlist/invite.rs
···
+38
crates/jacquard-api/src/network_slices/waitlist/request.rs
+38
crates/jacquard-api/src/network_slices/waitlist/request.rs
···
+38
crates/jacquard-api/src/org_devcon/event/test.rs
+38
crates/jacquard-api/src/org_devcon/event/test.rs
···
+38
crates/jacquard-api/src/org_robocracy/demo/fungus.rs
+38
crates/jacquard-api/src/org_robocracy/demo/fungus.rs
···
+38
crates/jacquard-api/src/org_robocracy/demo/mushies.rs
+38
crates/jacquard-api/src/org_robocracy/demo/mushies.rs
···
+38
crates/jacquard-api/src/place_atwork/endorsement.rs
+38
crates/jacquard-api/src/place_atwork/endorsement.rs
···
+38
crates/jacquard-api/src/place_atwork/endorsement_proof.rs
+38
crates/jacquard-api/src/place_atwork/endorsement_proof.rs
···
+38
crates/jacquard-api/src/place_atwork/listing.rs
+38
crates/jacquard-api/src/place_atwork/listing.rs
···
+38
crates/jacquard-api/src/place_atwork/profile.rs
+38
crates/jacquard-api/src/place_atwork/profile.rs
···
+38
crates/jacquard-api/src/place_stream/chat/gate.rs
+38
crates/jacquard-api/src/place_stream/chat/gate.rs
···
+38
crates/jacquard-api/src/place_stream/chat/message.rs
+38
crates/jacquard-api/src/place_stream/chat/message.rs
···
+38
crates/jacquard-api/src/place_stream/chat/profile.rs
+38
crates/jacquard-api/src/place_stream/chat/profile.rs
···
+38
crates/jacquard-api/src/place_stream/key.rs
+38
crates/jacquard-api/src/place_stream/key.rs
···
+38
crates/jacquard-api/src/place_stream/livestream.rs
+38
crates/jacquard-api/src/place_stream/livestream.rs
···
+38
crates/jacquard-api/src/place_stream/segment.rs
+38
crates/jacquard-api/src/place_stream/segment.rs
···
+38
crates/jacquard-api/src/place_stream/server/settings.rs
+38
crates/jacquard-api/src/place_stream/server/settings.rs
···
+38
crates/jacquard-api/src/pub_leaflet/comment.rs
+38
crates/jacquard-api/src/pub_leaflet/comment.rs
···
+38
crates/jacquard-api/src/pub_leaflet/document.rs
+38
crates/jacquard-api/src/pub_leaflet/document.rs
···
+38
crates/jacquard-api/src/pub_leaflet/graph/subscription.rs
+38
crates/jacquard-api/src/pub_leaflet/graph/subscription.rs
···
+38
crates/jacquard-api/src/pub_leaflet/publication.rs
+38
crates/jacquard-api/src/pub_leaflet/publication.rs
···
+38
crates/jacquard-api/src/sh_tangled/actor/profile.rs
+38
crates/jacquard-api/src/sh_tangled/actor/profile.rs
···
+38
crates/jacquard-api/src/sh_tangled/feed/reaction.rs
+38
crates/jacquard-api/src/sh_tangled/feed/reaction.rs
···
+38
crates/jacquard-api/src/sh_tangled/feed/star.rs
+38
crates/jacquard-api/src/sh_tangled/feed/star.rs
···
+38
crates/jacquard-api/src/sh_tangled/git/ref_update.rs
+38
crates/jacquard-api/src/sh_tangled/git/ref_update.rs
···
+38
crates/jacquard-api/src/sh_tangled/graph/follow.rs
+38
crates/jacquard-api/src/sh_tangled/graph/follow.rs
···
+38
crates/jacquard-api/src/sh_tangled/knot.rs
+38
crates/jacquard-api/src/sh_tangled/knot.rs
···
+38
crates/jacquard-api/src/sh_tangled/knot/member.rs
+38
crates/jacquard-api/src/sh_tangled/knot/member.rs
···
+38
crates/jacquard-api/src/sh_tangled/label/definition.rs
+38
crates/jacquard-api/src/sh_tangled/label/definition.rs
···
+38
crates/jacquard-api/src/sh_tangled/label/op.rs
+38
crates/jacquard-api/src/sh_tangled/label/op.rs
···
+38
crates/jacquard-api/src/sh_tangled/pipeline.rs
+38
crates/jacquard-api/src/sh_tangled/pipeline.rs
···
+38
crates/jacquard-api/src/sh_tangled/pipeline/status.rs
+38
crates/jacquard-api/src/sh_tangled/pipeline/status.rs
···
+38
crates/jacquard-api/src/sh_tangled/public_key.rs
+38
crates/jacquard-api/src/sh_tangled/public_key.rs
···
+38
crates/jacquard-api/src/sh_tangled/repo.rs
+38
crates/jacquard-api/src/sh_tangled/repo.rs
···
+38
crates/jacquard-api/src/sh_tangled/repo/artifact.rs
+38
crates/jacquard-api/src/sh_tangled/repo/artifact.rs
···
+38
crates/jacquard-api/src/sh_tangled/repo/collaborator.rs
+38
crates/jacquard-api/src/sh_tangled/repo/collaborator.rs
···
+38
crates/jacquard-api/src/sh_tangled/repo/issue.rs
+38
crates/jacquard-api/src/sh_tangled/repo/issue.rs
···
+38
crates/jacquard-api/src/sh_tangled/repo/issue/comment.rs
+38
crates/jacquard-api/src/sh_tangled/repo/issue/comment.rs
···
+38
crates/jacquard-api/src/sh_tangled/repo/issue/state.rs
+38
crates/jacquard-api/src/sh_tangled/repo/issue/state.rs
···
+38
crates/jacquard-api/src/sh_tangled/repo/pull.rs
+38
crates/jacquard-api/src/sh_tangled/repo/pull.rs
···
+38
crates/jacquard-api/src/sh_tangled/repo/pull/comment.rs
+38
crates/jacquard-api/src/sh_tangled/repo/pull/comment.rs
···
+38
crates/jacquard-api/src/sh_tangled/repo/pull/status.rs
+38
crates/jacquard-api/src/sh_tangled/repo/pull/status.rs
···
+38
crates/jacquard-api/src/sh_tangled/spindle.rs
+38
crates/jacquard-api/src/sh_tangled/spindle.rs
···
+38
crates/jacquard-api/src/sh_tangled/spindle/member.rs
+38
crates/jacquard-api/src/sh_tangled/spindle/member.rs
···
+38
crates/jacquard-api/src/sh_tangled/string.rs
+38
crates/jacquard-api/src/sh_tangled/string.rs
···
+38
crates/jacquard-api/src/sh_weaver/actor/profile.rs
+38
crates/jacquard-api/src/sh_weaver/actor/profile.rs
···
+38
crates/jacquard-api/src/sh_weaver/edit/cursor.rs
+38
crates/jacquard-api/src/sh_weaver/edit/cursor.rs
···
+38
crates/jacquard-api/src/sh_weaver/edit/diff.rs
+38
crates/jacquard-api/src/sh_weaver/edit/diff.rs
···
+38
crates/jacquard-api/src/sh_weaver/edit/root.rs
+38
crates/jacquard-api/src/sh_weaver/edit/root.rs
···
+38
crates/jacquard-api/src/sh_weaver/notebook/book.rs
+38
crates/jacquard-api/src/sh_weaver/notebook/book.rs
···
+38
crates/jacquard-api/src/sh_weaver/notebook/chapter.rs
+38
crates/jacquard-api/src/sh_weaver/notebook/chapter.rs
···
+38
crates/jacquard-api/src/sh_weaver/notebook/entry.rs
+38
crates/jacquard-api/src/sh_weaver/notebook/entry.rs
···
+38
crates/jacquard-api/src/sh_weaver/publish/blob.rs
+38
crates/jacquard-api/src/sh_weaver/publish/blob.rs
···
+38
crates/jacquard-api/src/tools_smokesignal/blahg/content/post.rs
+38
crates/jacquard-api/src/tools_smokesignal/blahg/content/post.rs
···
+38
crates/jacquard-api/src/uk_ewancroft/now.rs
+38
crates/jacquard-api/src/uk_ewancroft/now.rs
···
+38
crates/jacquard-api/src/uk_skyblur/post.rs
+38
crates/jacquard-api/src/uk_skyblur/post.rs
···
+38
crates/jacquard-api/src/uk_skyblur/preference.rs
+38
crates/jacquard-api/src/uk_skyblur/preference.rs
···
+38
crates/jacquard-api/src/us_polhem/blog/content.rs
+38
crates/jacquard-api/src/us_polhem/blog/content.rs
···
+38
crates/jacquard-api/src/us_polhem/blog/post.rs
+38
crates/jacquard-api/src/us_polhem/blog/post.rs
···
+38
crates/jacquard-api/src/us_polhem/blog/tag.rs
+38
crates/jacquard-api/src/us_polhem/blog/tag.rs
···
+38
crates/jacquard-api/src/win_tomo_x/pushat/allow.rs
+38
crates/jacquard-api/src/win_tomo_x/pushat/allow.rs
···
+4
-4
crates/jacquard-axum/Cargo.toml
+4
-4
crates/jacquard-axum/Cargo.toml
+84
crates/jacquard-axum/src/lib.rs
+84
crates/jacquard-axum/src/lib.rs
·········
···+//! use jacquard::api::com_atproto::identity::resolve_handle::{ResolveHandle, ResolveHandleRequest, ResolveHandleOutput};+//! # let output = ResolveHandleOutput { did: Did::new_static("did:plc:test").unwrap(), extra_data: BTreeMap::new() };+//! - **Procedure**: Deserializes from request body (supports custom encodings via `decode_body`)+//! [`IntoStatic`], avoiding the DeserializeOwned requirement of the Json axum extractor and similar.······
-73
crates/jacquard-axum/src/main.rs
-73
crates/jacquard-axum/src/main.rs
···
···
-1
crates/jacquard-common/Cargo.toml
-1
crates/jacquard-common/Cargo.toml
+182
-2
crates/jacquard-common/src/lib.rs
+182
-2
crates/jacquard-common/src/lib.rs
······
···+//! strings and other data directly from the response buffer instead of allocating owned copies.+//! This is great for performance, but it creates some interesting challenges when combined with+//! The `for<'any>` bound says "this type must implement `XrpcRequest` for *every possible lifetime*",+//! which is effectively the same as requiring `DeserializeOwned`. You've just thrown away your+//! zero-copy optimization, and this also won't work on most of the types in jacquard. The vast+//! It gets worse with async. If you want to return borrowed data from an async method, where does+//! consumed by the HTTP call. You end up with "cannot infer appropriate lifetime" errors or even+//! more confusing errors because the compiler can't prove the buffer will stay alive. You *could*+//! do some lifetime laundering with `unsafe`, but you don't actually *need* to tell rustc to "trust+//! The fix is to use Generic Associated Types (GATs) on the trait's associated types, while keeping+//! // preferences union, so that if you implement a similar lexicon type in your AppView or App+//! The compiler can monomorphize for concrete lifetimes instead of trying to prove bounds hold+//! This lets async methods return a `Response` that owns its buffer, then the *caller* decides+//! The async method doesn't need to know or care about lifetimes - it just returns the `Response`.+//! The caller gets full control over whether to use borrowed or owned data. It can even decide+//! after the fact that it doesn't want to parse out the API response type that it asked for. Instead+//! it can call `.parse_data()` or `.parse_raw()` on the response to get loosely typed, validated+//! in a way that doesn't require unsafe code or much actual work from you, if you're using it.+//! It's also not too bad to write, once you're aware of the pattern and why it works. If you run+//! into a lifetime/borrowing inference issue in jacquard, please contact the crate author. She'd+//! be happy to debug, and if it's using a method from one of the jacquard crates and seems like+//! it *should* just work, that is a bug in jacquard, and you should [file an issue](https://tangled.org/@nonbinary.computer/jacquard/).···
+38
-1
crates/jacquard-common/src/types/collection.rs
+38
-1
crates/jacquard-common/src/types/collection.rs
·········
·········
+18
-6
crates/jacquard-common/src/types/did_doc.rs
+18
-6
crates/jacquard-common/src/types/did_doc.rs
···-/// "service": [{"id":"#pds","type":"AtprotoPersonalDataServer","serviceEndpoint":"https://pds.example"}],
···
+36
-24
crates/jacquard-common/src/types/value.rs
+36
-24
crates/jacquard-common/src/types/value.rs
············pub fn to_raw_data<T>(value: &T) -> Result<RawData<'static>, serde_impl::RawDataSerializerError>···
············pub fn to_raw_data<T>(value: &T) -> Result<RawData<'static>, serde_impl::RawDataSerializerError>···
+46
-51
crates/jacquard-common/src/xrpc.rs
+46
-51
crates/jacquard-common/src/xrpc.rs
·········/// It is implemented by the code generation on a marker struct, like the client-side [XrpcResp] trait.·········
·········/// It is implemented by the code generation on a marker struct, like the client-side [XrpcResp] trait.·········
+77
-25
crates/jacquard-derive/src/lib.rs
+77
-25
crates/jacquard-derive/src/lib.rs
············-fn generate_enum_conversion(name: &syn::Ident, data_enum: &syn::DataEnum) -> proc_macro2::TokenStream {···
···+//! enums accept variants not defined in your code, storing them as loosely typed atproto `Data`.············
+64
-11
crates/jacquard-identity/src/lib.rs
+64
-11
crates/jacquard-identity/src/lib.rs
···-//! `resolveHandle` (when `pds_fallback` is configured) → public API fallback → Slingshot `resolveHandle` (if configured).-//! - DID → Doc: did:web well-known → PLC/Slingshot HTTP → PDS XRPC `resolveDid` (when configured),···
······
+100
-19
crates/jacquard-lexicon/src/codegen/structs.rs
+100
-19
crates/jacquard-lexicon/src/codegen/structs.rs
······-if !union.refs.is_empty() && (union.refs.len() > 1 || self.is_self_referential_union(nsid, &type_name, union)) {·········-if !union.refs.is_empty() && (union.refs.len() > 1 || self.is_self_referential_union(nsid, &type_name, union)) {·········-let (ref_nsid_str, ref_def) = if let Some((nsid, fragment)) = normalized_ref.split_once('#') {···
············+#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq, jacquard_derive::IntoStatic)]···············
+38
crates/jacquard-lexicon/src/lib.rs
+38
crates/jacquard-lexicon/src/lib.rs
···
+79
-2
crates/jacquard-oauth/src/client.rs
+79
-2
crates/jacquard-oauth/src/client.rs
·········
·········
+47
-2
crates/jacquard-oauth/src/lib.rs
+47
-2
crates/jacquard-oauth/src/lib.rs
···
+47
-4
crates/jacquard/Cargo.toml
+47
-4
crates/jacquard/Cargo.toml
······
······
+610
-6
crates/jacquard/src/client.rs
+610
-6
crates/jacquard/src/client.rs
···············
·········+/// let uri = AtUri::new_static("at://did:plc:xyz/app.bsky.feed.post/3l5bqm7lepk2c").unwrap();+f: impl FnOnce(&mut <<<R as Collection>::Record as XrpcResp>::Output<'_> as IntoStatic>::Output),······
+31
-1
crates/jacquard/src/client/credential_session.rs
+31
-1
crates/jacquard/src/client/credential_session.rs
······
+3
-2
crates/jacquard/src/client/token.rs
+3
-2
crates/jacquard/src/client/token.rs
······
······
+67
crates/jacquard/src/client/vec_update.rs
+67
crates/jacquard/src/client/vec_update.rs
···
···
+63
crates/jacquard/src/client/vec_update/preferences.rs
+63
crates/jacquard/src/client/vec_update/preferences.rs
···
···
+17
-13
crates/jacquard/src/lib.rs
+17
-13
crates/jacquard/src/lib.rs
······
······+//! - [`jacquard-common`] - AT Protocol types (DIDs, handles, at-URIs, NSIDs, TIDs, CIDs, etc.)+//! - [`jacquard-axum`] - Server-side XRPC handler extractors for Axum framework (not re-exported, depends on jacquard)+//! - [`jacquard-lexicon`] - Lexicon resolution, fetching, parsing and Rust code generation from schemas
+2
-4
crates/jacquard/src/main.rs
examples/oauth_timeline.rs
+2
-4
crates/jacquard/src/main.rs
examples/oauth_timeline.rs
······
······
+36
examples/axum_server.rs
+36
examples/axum_server.rs
···
···
+56
examples/create_post.rs
+56
examples/create_post.rs
···
···
+66
examples/create_whitewind_post.rs
+66
examples/create_whitewind_post.rs
···
···+visibility: Some(CowStr::from("url")), // "url" = public with link, "author" = public on profile
+97
examples/post_with_image.rs
+97
examples/post_with_image.rs
···
···
+32
examples/public_atproto_feed.rs
+32
examples/public_atproto_feed.rs
···
···
+63
examples/read_tangled_repo.rs
+63
examples/read_tangled_repo.rs
···
···
+40
examples/read_whitewind_posts.rs
+40
examples/read_whitewind_posts.rs
···
···
+100
examples/resolve_did.rs
+100
examples/resolve_did.rs
···
···
+95
examples/update_preferences.rs
+95
examples/update_preferences.rs
···
···
+67
examples/update_profile.rs
+67
examples/update_profile.rs
···
···
+44
justfile
+44
justfile
···