A better Rust ATProto crate
at main 25 kB view raw
1// @generated by jacquard-lexicon. DO NOT EDIT. 2// 3// Lexicon: app.bsky.feed.defs 4// 5// This file was automatically generated from Lexicon schemas. 6// Any manual changes will be overwritten on the next regeneration. 7 8pub mod describe_feed_generator; 9pub mod generator; 10pub mod get_actor_feeds; 11pub mod get_actor_likes; 12pub mod get_author_feed; 13pub mod get_feed; 14pub mod get_feed_generator; 15pub mod get_feed_generators; 16pub mod get_feed_skeleton; 17pub mod get_likes; 18pub mod get_list_feed; 19pub mod get_post_thread; 20pub mod get_posts; 21pub mod get_quotes; 22pub mod get_reposted_by; 23pub mod get_suggested_feeds; 24pub mod get_timeline; 25pub mod like; 26pub mod post; 27pub mod postgate; 28pub mod repost; 29pub mod search_posts; 30pub mod send_interactions; 31pub mod threadgate; 32 33#[jacquard_derive::lexicon] 34#[derive( 35 serde::Serialize, 36 serde::Deserialize, 37 Debug, 38 Clone, 39 PartialEq, 40 Eq, 41 jacquard_derive::IntoStatic, 42 bon::Builder 43)] 44#[serde(rename_all = "camelCase")] 45pub struct BlockedAuthor<'a> { 46 #[serde(borrow)] 47 pub did: jacquard_common::types::string::Did<'a>, 48 #[serde(skip_serializing_if = "std::option::Option::is_none")] 49 #[builder(into)] 50 #[serde(borrow)] 51 pub viewer: Option<crate::app_bsky::actor::ViewerState<'a>>, 52} 53 54#[jacquard_derive::lexicon] 55#[derive( 56 serde::Serialize, 57 serde::Deserialize, 58 Debug, 59 Clone, 60 PartialEq, 61 Eq, 62 jacquard_derive::IntoStatic, 63 bon::Builder 64)] 65#[serde(rename_all = "camelCase")] 66pub struct BlockedPost<'a> { 67 #[serde(borrow)] 68 pub author: crate::app_bsky::feed::BlockedAuthor<'a>, 69 pub blocked: bool, 70 #[serde(borrow)] 71 pub uri: jacquard_common::types::string::AtUri<'a>, 72} 73 74/// User clicked through to the author of the feed item 75#[derive( 76 serde::Serialize, 77 serde::Deserialize, 78 Debug, 79 Clone, 80 PartialEq, 81 Eq, 82 Hash, 83 jacquard_derive::IntoStatic 84)] 85pub struct ClickthroughAuthor; 86impl std::fmt::Display for ClickthroughAuthor { 87 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 88 write!(f, "clickthroughAuthor") 89 } 90} 91 92/// User clicked through to the embedded content of the feed item 93#[derive( 94 serde::Serialize, 95 serde::Deserialize, 96 Debug, 97 Clone, 98 PartialEq, 99 Eq, 100 Hash, 101 jacquard_derive::IntoStatic 102)] 103pub struct ClickthroughEmbed; 104impl std::fmt::Display for ClickthroughEmbed { 105 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 106 write!(f, "clickthroughEmbed") 107 } 108} 109 110/// User clicked through to the feed item 111#[derive( 112 serde::Serialize, 113 serde::Deserialize, 114 Debug, 115 Clone, 116 PartialEq, 117 Eq, 118 Hash, 119 jacquard_derive::IntoStatic 120)] 121pub struct ClickthroughItem; 122impl std::fmt::Display for ClickthroughItem { 123 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 124 write!(f, "clickthroughItem") 125 } 126} 127 128/// User clicked through to the reposter of the feed item 129#[derive( 130 serde::Serialize, 131 serde::Deserialize, 132 Debug, 133 Clone, 134 PartialEq, 135 Eq, 136 Hash, 137 jacquard_derive::IntoStatic 138)] 139pub struct ClickthroughReposter; 140impl std::fmt::Display for ClickthroughReposter { 141 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 142 write!(f, "clickthroughReposter") 143 } 144} 145 146/// Declares the feed generator returns any types of posts. 147#[derive( 148 serde::Serialize, 149 serde::Deserialize, 150 Debug, 151 Clone, 152 PartialEq, 153 Eq, 154 Hash, 155 jacquard_derive::IntoStatic 156)] 157pub struct ContentModeUnspecified; 158impl std::fmt::Display for ContentModeUnspecified { 159 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 160 write!(f, "contentModeUnspecified") 161 } 162} 163 164/// Declares the feed generator returns posts containing app.bsky.embed.video embeds. 165#[derive( 166 serde::Serialize, 167 serde::Deserialize, 168 Debug, 169 Clone, 170 PartialEq, 171 Eq, 172 Hash, 173 jacquard_derive::IntoStatic 174)] 175pub struct ContentModeVideo; 176impl std::fmt::Display for ContentModeVideo { 177 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 178 write!(f, "contentModeVideo") 179 } 180} 181 182#[jacquard_derive::lexicon] 183#[derive( 184 serde::Serialize, 185 serde::Deserialize, 186 Debug, 187 Clone, 188 PartialEq, 189 Eq, 190 jacquard_derive::IntoStatic, 191 bon::Builder 192)] 193#[serde(rename_all = "camelCase")] 194pub struct FeedViewPost<'a> { 195 /// Context provided by feed generator that may be passed back alongside interactions. 196 #[serde(skip_serializing_if = "std::option::Option::is_none")] 197 #[builder(into)] 198 #[serde(borrow)] 199 pub feed_context: Option<jacquard_common::CowStr<'a>>, 200 #[serde(borrow)] 201 pub post: crate::app_bsky::feed::PostView<'a>, 202 #[serde(skip_serializing_if = "std::option::Option::is_none")] 203 #[builder(into)] 204 #[serde(borrow)] 205 pub reason: Option<FeedViewPostReason<'a>>, 206 #[serde(skip_serializing_if = "std::option::Option::is_none")] 207 #[builder(into)] 208 #[serde(borrow)] 209 pub reply: Option<crate::app_bsky::feed::ReplyRef<'a>>, 210 /// Unique identifier per request that may be passed back alongside interactions. 211 #[serde(skip_serializing_if = "std::option::Option::is_none")] 212 #[builder(into)] 213 #[serde(borrow)] 214 pub req_id: Option<jacquard_common::CowStr<'a>>, 215} 216 217#[jacquard_derive::open_union] 218#[derive( 219 serde::Serialize, 220 serde::Deserialize, 221 Debug, 222 Clone, 223 PartialEq, 224 Eq, 225 jacquard_derive::IntoStatic 226)] 227#[serde(tag = "$type")] 228#[serde(bound(deserialize = "'de: 'a"))] 229pub enum FeedViewPostReason<'a> { 230 #[serde(rename = "app.bsky.feed.defs#reasonRepost")] 231 ReasonRepost(Box<crate::app_bsky::feed::ReasonRepost<'a>>), 232 #[serde(rename = "app.bsky.feed.defs#reasonPin")] 233 ReasonPin(Box<crate::app_bsky::feed::ReasonPin<'a>>), 234} 235 236#[jacquard_derive::lexicon] 237#[derive( 238 serde::Serialize, 239 serde::Deserialize, 240 Debug, 241 Clone, 242 PartialEq, 243 Eq, 244 jacquard_derive::IntoStatic, 245 bon::Builder 246)] 247#[serde(rename_all = "camelCase")] 248pub struct GeneratorView<'a> { 249 #[serde(skip_serializing_if = "std::option::Option::is_none")] 250 #[builder(into)] 251 pub accepts_interactions: Option<bool>, 252 #[serde(skip_serializing_if = "std::option::Option::is_none")] 253 #[builder(into)] 254 #[serde(borrow)] 255 pub avatar: Option<jacquard_common::types::string::Uri<'a>>, 256 #[serde(borrow)] 257 pub cid: jacquard_common::types::string::Cid<'a>, 258 #[serde(skip_serializing_if = "std::option::Option::is_none")] 259 #[builder(into)] 260 #[serde(borrow)] 261 pub content_mode: Option<jacquard_common::CowStr<'a>>, 262 #[serde(borrow)] 263 pub creator: crate::app_bsky::actor::ProfileView<'a>, 264 #[serde(skip_serializing_if = "std::option::Option::is_none")] 265 #[builder(into)] 266 #[serde(borrow)] 267 pub description: Option<jacquard_common::CowStr<'a>>, 268 #[serde(skip_serializing_if = "std::option::Option::is_none")] 269 #[builder(into)] 270 #[serde(borrow)] 271 pub description_facets: Option<Vec<crate::app_bsky::richtext::facet::Facet<'a>>>, 272 #[serde(borrow)] 273 pub did: jacquard_common::types::string::Did<'a>, 274 #[serde(borrow)] 275 #[builder(into)] 276 pub display_name: jacquard_common::CowStr<'a>, 277 pub indexed_at: jacquard_common::types::string::Datetime, 278 #[serde(skip_serializing_if = "std::option::Option::is_none")] 279 #[builder(into)] 280 #[serde(borrow)] 281 pub labels: Option<Vec<crate::com_atproto::label::Label<'a>>>, 282 #[serde(skip_serializing_if = "std::option::Option::is_none")] 283 #[builder(into)] 284 pub like_count: Option<i64>, 285 #[serde(borrow)] 286 pub uri: jacquard_common::types::string::AtUri<'a>, 287 #[serde(skip_serializing_if = "std::option::Option::is_none")] 288 #[builder(into)] 289 #[serde(borrow)] 290 pub viewer: Option<crate::app_bsky::feed::GeneratorViewerState<'a>>, 291} 292 293#[jacquard_derive::lexicon] 294#[derive( 295 serde::Serialize, 296 serde::Deserialize, 297 Debug, 298 Clone, 299 PartialEq, 300 Eq, 301 jacquard_derive::IntoStatic, 302 Default 303)] 304#[serde(rename_all = "camelCase")] 305pub struct GeneratorViewerState<'a> { 306 #[serde(skip_serializing_if = "std::option::Option::is_none")] 307 #[serde(borrow)] 308 pub like: std::option::Option<jacquard_common::types::string::AtUri<'a>>, 309} 310 311#[jacquard_derive::lexicon] 312#[derive( 313 serde::Serialize, 314 serde::Deserialize, 315 Debug, 316 Clone, 317 PartialEq, 318 Eq, 319 jacquard_derive::IntoStatic, 320 Default 321)] 322#[serde(rename_all = "camelCase")] 323pub struct Interaction<'a> { 324 #[serde(skip_serializing_if = "std::option::Option::is_none")] 325 #[serde(borrow)] 326 pub event: std::option::Option<jacquard_common::CowStr<'a>>, 327 /// Context on a feed item that was originally supplied by the feed generator on getFeedSkeleton. 328 #[serde(skip_serializing_if = "std::option::Option::is_none")] 329 #[serde(borrow)] 330 pub feed_context: std::option::Option<jacquard_common::CowStr<'a>>, 331 #[serde(skip_serializing_if = "std::option::Option::is_none")] 332 #[serde(borrow)] 333 pub item: std::option::Option<jacquard_common::types::string::AtUri<'a>>, 334 /// Unique identifier per request that may be passed back alongside interactions. 335 #[serde(skip_serializing_if = "std::option::Option::is_none")] 336 #[serde(borrow)] 337 pub req_id: std::option::Option<jacquard_common::CowStr<'a>>, 338} 339 340/// User liked the feed item 341#[derive( 342 serde::Serialize, 343 serde::Deserialize, 344 Debug, 345 Clone, 346 PartialEq, 347 Eq, 348 Hash, 349 jacquard_derive::IntoStatic 350)] 351pub struct InteractionLike; 352impl std::fmt::Display for InteractionLike { 353 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 354 write!(f, "interactionLike") 355 } 356} 357 358/// User quoted the feed item 359#[derive( 360 serde::Serialize, 361 serde::Deserialize, 362 Debug, 363 Clone, 364 PartialEq, 365 Eq, 366 Hash, 367 jacquard_derive::IntoStatic 368)] 369pub struct InteractionQuote; 370impl std::fmt::Display for InteractionQuote { 371 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 372 write!(f, "interactionQuote") 373 } 374} 375 376/// User replied to the feed item 377#[derive( 378 serde::Serialize, 379 serde::Deserialize, 380 Debug, 381 Clone, 382 PartialEq, 383 Eq, 384 Hash, 385 jacquard_derive::IntoStatic 386)] 387pub struct InteractionReply; 388impl std::fmt::Display for InteractionReply { 389 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 390 write!(f, "interactionReply") 391 } 392} 393 394/// User reposted the feed item 395#[derive( 396 serde::Serialize, 397 serde::Deserialize, 398 Debug, 399 Clone, 400 PartialEq, 401 Eq, 402 Hash, 403 jacquard_derive::IntoStatic 404)] 405pub struct InteractionRepost; 406impl std::fmt::Display for InteractionRepost { 407 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 408 write!(f, "interactionRepost") 409 } 410} 411 412/// Feed item was seen by user 413#[derive( 414 serde::Serialize, 415 serde::Deserialize, 416 Debug, 417 Clone, 418 PartialEq, 419 Eq, 420 Hash, 421 jacquard_derive::IntoStatic 422)] 423pub struct InteractionSeen; 424impl std::fmt::Display for InteractionSeen { 425 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 426 write!(f, "interactionSeen") 427 } 428} 429 430/// User shared the feed item 431#[derive( 432 serde::Serialize, 433 serde::Deserialize, 434 Debug, 435 Clone, 436 PartialEq, 437 Eq, 438 Hash, 439 jacquard_derive::IntoStatic 440)] 441pub struct InteractionShare; 442impl std::fmt::Display for InteractionShare { 443 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 444 write!(f, "interactionShare") 445 } 446} 447 448#[jacquard_derive::lexicon] 449#[derive( 450 serde::Serialize, 451 serde::Deserialize, 452 Debug, 453 Clone, 454 PartialEq, 455 Eq, 456 jacquard_derive::IntoStatic, 457 bon::Builder 458)] 459#[serde(rename_all = "camelCase")] 460pub struct NotFoundPost<'a> { 461 pub not_found: bool, 462 #[serde(borrow)] 463 pub uri: jacquard_common::types::string::AtUri<'a>, 464} 465 466#[jacquard_derive::lexicon] 467#[derive( 468 serde::Serialize, 469 serde::Deserialize, 470 Debug, 471 Clone, 472 PartialEq, 473 Eq, 474 jacquard_derive::IntoStatic, 475 bon::Builder 476)] 477#[serde(rename_all = "camelCase")] 478pub struct PostView<'a> { 479 #[serde(borrow)] 480 pub author: crate::app_bsky::actor::ProfileViewBasic<'a>, 481 #[serde(skip_serializing_if = "std::option::Option::is_none")] 482 #[builder(into)] 483 pub bookmark_count: Option<i64>, 484 #[serde(borrow)] 485 pub cid: jacquard_common::types::string::Cid<'a>, 486 #[serde(skip_serializing_if = "std::option::Option::is_none")] 487 #[builder(into)] 488 #[serde(borrow)] 489 pub embed: Option<PostViewEmbed<'a>>, 490 pub indexed_at: jacquard_common::types::string::Datetime, 491 #[serde(skip_serializing_if = "std::option::Option::is_none")] 492 #[builder(into)] 493 #[serde(borrow)] 494 pub labels: Option<Vec<crate::com_atproto::label::Label<'a>>>, 495 #[serde(skip_serializing_if = "std::option::Option::is_none")] 496 #[builder(into)] 497 pub like_count: Option<i64>, 498 #[serde(skip_serializing_if = "std::option::Option::is_none")] 499 #[builder(into)] 500 pub quote_count: Option<i64>, 501 #[serde(borrow)] 502 pub record: jacquard_common::types::value::Data<'a>, 503 #[serde(skip_serializing_if = "std::option::Option::is_none")] 504 #[builder(into)] 505 pub reply_count: Option<i64>, 506 #[serde(skip_serializing_if = "std::option::Option::is_none")] 507 #[builder(into)] 508 pub repost_count: Option<i64>, 509 #[serde(skip_serializing_if = "std::option::Option::is_none")] 510 #[builder(into)] 511 #[serde(borrow)] 512 pub threadgate: Option<crate::app_bsky::feed::ThreadgateView<'a>>, 513 #[serde(borrow)] 514 pub uri: jacquard_common::types::string::AtUri<'a>, 515 #[serde(skip_serializing_if = "std::option::Option::is_none")] 516 #[builder(into)] 517 #[serde(borrow)] 518 pub viewer: Option<crate::app_bsky::feed::ViewerState<'a>>, 519} 520 521#[jacquard_derive::open_union] 522#[derive( 523 serde::Serialize, 524 serde::Deserialize, 525 Debug, 526 Clone, 527 PartialEq, 528 Eq, 529 jacquard_derive::IntoStatic 530)] 531#[serde(tag = "$type")] 532#[serde(bound(deserialize = "'de: 'a"))] 533pub enum PostViewEmbed<'a> { 534 #[serde(rename = "app.bsky.embed.images#view")] 535 ImagesView(Box<crate::app_bsky::embed::images::View<'a>>), 536 #[serde(rename = "app.bsky.embed.video#view")] 537 VideoView(Box<crate::app_bsky::embed::video::View<'a>>), 538 #[serde(rename = "app.bsky.embed.external#view")] 539 ExternalView(Box<crate::app_bsky::embed::external::View<'a>>), 540 #[serde(rename = "app.bsky.embed.record#view")] 541 RecordView(Box<crate::app_bsky::embed::record::View<'a>>), 542 #[serde(rename = "app.bsky.embed.recordWithMedia#view")] 543 RecordWithMediaView(Box<crate::app_bsky::embed::record_with_media::View<'a>>), 544} 545 546#[jacquard_derive::lexicon] 547#[derive( 548 serde::Serialize, 549 serde::Deserialize, 550 Debug, 551 Clone, 552 PartialEq, 553 Eq, 554 jacquard_derive::IntoStatic, 555 Default 556)] 557#[serde(rename_all = "camelCase")] 558pub struct ReasonPin<'a> {} 559#[jacquard_derive::lexicon] 560#[derive( 561 serde::Serialize, 562 serde::Deserialize, 563 Debug, 564 Clone, 565 PartialEq, 566 Eq, 567 jacquard_derive::IntoStatic, 568 bon::Builder 569)] 570#[serde(rename_all = "camelCase")] 571pub struct ReasonRepost<'a> { 572 #[serde(borrow)] 573 pub by: crate::app_bsky::actor::ProfileViewBasic<'a>, 574 #[serde(skip_serializing_if = "std::option::Option::is_none")] 575 #[builder(into)] 576 #[serde(borrow)] 577 pub cid: Option<jacquard_common::types::string::Cid<'a>>, 578 pub indexed_at: jacquard_common::types::string::Datetime, 579 #[serde(skip_serializing_if = "std::option::Option::is_none")] 580 #[builder(into)] 581 #[serde(borrow)] 582 pub uri: Option<jacquard_common::types::string::AtUri<'a>>, 583} 584 585#[jacquard_derive::lexicon] 586#[derive( 587 serde::Serialize, 588 serde::Deserialize, 589 Debug, 590 Clone, 591 PartialEq, 592 Eq, 593 jacquard_derive::IntoStatic, 594 bon::Builder 595)] 596#[serde(rename_all = "camelCase")] 597pub struct ReplyRef<'a> { 598 /// When parent is a reply to another post, this is the author of that post. 599 #[serde(skip_serializing_if = "std::option::Option::is_none")] 600 #[builder(into)] 601 #[serde(borrow)] 602 pub grandparent_author: Option<crate::app_bsky::actor::ProfileViewBasic<'a>>, 603 #[serde(borrow)] 604 pub parent: ReplyRefParent<'a>, 605 #[serde(borrow)] 606 pub root: ReplyRefRoot<'a>, 607} 608 609#[jacquard_derive::open_union] 610#[derive( 611 serde::Serialize, 612 serde::Deserialize, 613 Debug, 614 Clone, 615 PartialEq, 616 Eq, 617 jacquard_derive::IntoStatic 618)] 619#[serde(tag = "$type")] 620#[serde(bound(deserialize = "'de: 'a"))] 621pub enum ReplyRefParent<'a> { 622 #[serde(rename = "app.bsky.feed.defs#postView")] 623 PostView(Box<crate::app_bsky::feed::PostView<'a>>), 624 #[serde(rename = "app.bsky.feed.defs#notFoundPost")] 625 NotFoundPost(Box<crate::app_bsky::feed::NotFoundPost<'a>>), 626 #[serde(rename = "app.bsky.feed.defs#blockedPost")] 627 BlockedPost(Box<crate::app_bsky::feed::BlockedPost<'a>>), 628} 629 630#[jacquard_derive::open_union] 631#[derive( 632 serde::Serialize, 633 serde::Deserialize, 634 Debug, 635 Clone, 636 PartialEq, 637 Eq, 638 jacquard_derive::IntoStatic 639)] 640#[serde(tag = "$type")] 641#[serde(bound(deserialize = "'de: 'a"))] 642pub enum ReplyRefRoot<'a> { 643 #[serde(rename = "app.bsky.feed.defs#postView")] 644 PostView(Box<crate::app_bsky::feed::PostView<'a>>), 645 #[serde(rename = "app.bsky.feed.defs#notFoundPost")] 646 NotFoundPost(Box<crate::app_bsky::feed::NotFoundPost<'a>>), 647 #[serde(rename = "app.bsky.feed.defs#blockedPost")] 648 BlockedPost(Box<crate::app_bsky::feed::BlockedPost<'a>>), 649} 650 651/// Request that less content like the given feed item be shown in the feed 652#[derive( 653 serde::Serialize, 654 serde::Deserialize, 655 Debug, 656 Clone, 657 PartialEq, 658 Eq, 659 Hash, 660 jacquard_derive::IntoStatic 661)] 662pub struct RequestLess; 663impl std::fmt::Display for RequestLess { 664 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 665 write!(f, "requestLess") 666 } 667} 668 669/// Request that more content like the given feed item be shown in the feed 670#[derive( 671 serde::Serialize, 672 serde::Deserialize, 673 Debug, 674 Clone, 675 PartialEq, 676 Eq, 677 Hash, 678 jacquard_derive::IntoStatic 679)] 680pub struct RequestMore; 681impl std::fmt::Display for RequestMore { 682 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 683 write!(f, "requestMore") 684 } 685} 686 687#[jacquard_derive::lexicon] 688#[derive( 689 serde::Serialize, 690 serde::Deserialize, 691 Debug, 692 Clone, 693 PartialEq, 694 Eq, 695 jacquard_derive::IntoStatic, 696 bon::Builder 697)] 698#[serde(rename_all = "camelCase")] 699pub struct SkeletonFeedPost<'a> { 700 /// Context that will be passed through to client and may be passed to feed generator back alongside interactions. 701 #[serde(skip_serializing_if = "std::option::Option::is_none")] 702 #[builder(into)] 703 #[serde(borrow)] 704 pub feed_context: Option<jacquard_common::CowStr<'a>>, 705 #[serde(borrow)] 706 pub post: jacquard_common::types::string::AtUri<'a>, 707 #[serde(skip_serializing_if = "std::option::Option::is_none")] 708 #[builder(into)] 709 #[serde(borrow)] 710 pub reason: Option<SkeletonFeedPostReason<'a>>, 711} 712 713#[jacquard_derive::open_union] 714#[derive( 715 serde::Serialize, 716 serde::Deserialize, 717 Debug, 718 Clone, 719 PartialEq, 720 Eq, 721 jacquard_derive::IntoStatic 722)] 723#[serde(tag = "$type")] 724#[serde(bound(deserialize = "'de: 'a"))] 725pub enum SkeletonFeedPostReason<'a> { 726 #[serde(rename = "app.bsky.feed.defs#skeletonReasonRepost")] 727 SkeletonReasonRepost(Box<crate::app_bsky::feed::SkeletonReasonRepost<'a>>), 728 #[serde(rename = "app.bsky.feed.defs#skeletonReasonPin")] 729 SkeletonReasonPin(Box<crate::app_bsky::feed::SkeletonReasonPin<'a>>), 730} 731 732#[jacquard_derive::lexicon] 733#[derive( 734 serde::Serialize, 735 serde::Deserialize, 736 Debug, 737 Clone, 738 PartialEq, 739 Eq, 740 jacquard_derive::IntoStatic, 741 Default 742)] 743#[serde(rename_all = "camelCase")] 744pub struct SkeletonReasonPin<'a> {} 745#[jacquard_derive::lexicon] 746#[derive( 747 serde::Serialize, 748 serde::Deserialize, 749 Debug, 750 Clone, 751 PartialEq, 752 Eq, 753 jacquard_derive::IntoStatic, 754 bon::Builder 755)] 756#[serde(rename_all = "camelCase")] 757pub struct SkeletonReasonRepost<'a> { 758 #[serde(borrow)] 759 pub repost: jacquard_common::types::string::AtUri<'a>, 760} 761 762/// Metadata about this post within the context of the thread it is in. 763#[jacquard_derive::lexicon] 764#[derive( 765 serde::Serialize, 766 serde::Deserialize, 767 Debug, 768 Clone, 769 PartialEq, 770 Eq, 771 jacquard_derive::IntoStatic, 772 Default 773)] 774#[serde(rename_all = "camelCase")] 775pub struct ThreadContext<'a> { 776 #[serde(skip_serializing_if = "std::option::Option::is_none")] 777 #[serde(borrow)] 778 pub root_author_like: std::option::Option<jacquard_common::types::string::AtUri<'a>>, 779} 780 781#[jacquard_derive::lexicon] 782#[derive( 783 serde::Serialize, 784 serde::Deserialize, 785 Debug, 786 Clone, 787 PartialEq, 788 Eq, 789 jacquard_derive::IntoStatic, 790 bon::Builder 791)] 792#[serde(rename_all = "camelCase")] 793pub struct ThreadViewPost<'a> { 794 #[serde(skip_serializing_if = "std::option::Option::is_none")] 795 #[builder(into)] 796 #[serde(borrow)] 797 pub parent: Option<ThreadViewPostParent<'a>>, 798 #[serde(borrow)] 799 pub post: crate::app_bsky::feed::PostView<'a>, 800 #[serde(skip_serializing_if = "std::option::Option::is_none")] 801 #[builder(into)] 802 #[serde(borrow)] 803 pub replies: Option<Vec<ThreadViewPostRepliesItem<'a>>>, 804 #[serde(skip_serializing_if = "std::option::Option::is_none")] 805 #[builder(into)] 806 #[serde(borrow)] 807 pub thread_context: Option<crate::app_bsky::feed::ThreadContext<'a>>, 808} 809 810#[jacquard_derive::open_union] 811#[derive( 812 serde::Serialize, 813 serde::Deserialize, 814 Debug, 815 Clone, 816 PartialEq, 817 Eq, 818 jacquard_derive::IntoStatic 819)] 820#[serde(tag = "$type")] 821#[serde(bound(deserialize = "'de: 'a"))] 822pub enum ThreadViewPostParent<'a> { 823 #[serde(rename = "app.bsky.feed.defs#threadViewPost")] 824 ThreadViewPost(Box<crate::app_bsky::feed::ThreadViewPost<'a>>), 825 #[serde(rename = "app.bsky.feed.defs#notFoundPost")] 826 NotFoundPost(Box<crate::app_bsky::feed::NotFoundPost<'a>>), 827 #[serde(rename = "app.bsky.feed.defs#blockedPost")] 828 BlockedPost(Box<crate::app_bsky::feed::BlockedPost<'a>>), 829} 830 831#[jacquard_derive::open_union] 832#[derive( 833 serde::Serialize, 834 serde::Deserialize, 835 Debug, 836 Clone, 837 PartialEq, 838 Eq, 839 jacquard_derive::IntoStatic 840)] 841#[serde(tag = "$type")] 842#[serde(bound(deserialize = "'de: 'a"))] 843pub enum ThreadViewPostRepliesItem<'a> { 844 #[serde(rename = "app.bsky.feed.defs#threadViewPost")] 845 ThreadViewPost(Box<crate::app_bsky::feed::ThreadViewPost<'a>>), 846 #[serde(rename = "app.bsky.feed.defs#notFoundPost")] 847 NotFoundPost(Box<crate::app_bsky::feed::NotFoundPost<'a>>), 848 #[serde(rename = "app.bsky.feed.defs#blockedPost")] 849 BlockedPost(Box<crate::app_bsky::feed::BlockedPost<'a>>), 850} 851 852#[jacquard_derive::lexicon] 853#[derive( 854 serde::Serialize, 855 serde::Deserialize, 856 Debug, 857 Clone, 858 PartialEq, 859 Eq, 860 jacquard_derive::IntoStatic, 861 Default 862)] 863#[serde(rename_all = "camelCase")] 864pub struct ThreadgateView<'a> { 865 #[serde(skip_serializing_if = "std::option::Option::is_none")] 866 #[serde(borrow)] 867 pub cid: std::option::Option<jacquard_common::types::string::Cid<'a>>, 868 #[serde(skip_serializing_if = "std::option::Option::is_none")] 869 #[serde(borrow)] 870 pub lists: std::option::Option<Vec<crate::app_bsky::graph::ListViewBasic<'a>>>, 871 #[serde(skip_serializing_if = "std::option::Option::is_none")] 872 #[serde(borrow)] 873 pub record: std::option::Option<jacquard_common::types::value::Data<'a>>, 874 #[serde(skip_serializing_if = "std::option::Option::is_none")] 875 #[serde(borrow)] 876 pub uri: std::option::Option<jacquard_common::types::string::AtUri<'a>>, 877} 878 879/// Metadata about the requesting account's relationship with the subject content. Only has meaningful content for authed requests. 880#[jacquard_derive::lexicon] 881#[derive( 882 serde::Serialize, 883 serde::Deserialize, 884 Debug, 885 Clone, 886 PartialEq, 887 Eq, 888 jacquard_derive::IntoStatic, 889 Default 890)] 891#[serde(rename_all = "camelCase")] 892pub struct ViewerState<'a> { 893 #[serde(skip_serializing_if = "std::option::Option::is_none")] 894 pub bookmarked: std::option::Option<bool>, 895 #[serde(skip_serializing_if = "std::option::Option::is_none")] 896 pub embedding_disabled: std::option::Option<bool>, 897 #[serde(skip_serializing_if = "std::option::Option::is_none")] 898 #[serde(borrow)] 899 pub like: std::option::Option<jacquard_common::types::string::AtUri<'a>>, 900 #[serde(skip_serializing_if = "std::option::Option::is_none")] 901 pub pinned: std::option::Option<bool>, 902 #[serde(skip_serializing_if = "std::option::Option::is_none")] 903 pub reply_disabled: std::option::Option<bool>, 904 #[serde(skip_serializing_if = "std::option::Option::is_none")] 905 #[serde(borrow)] 906 pub repost: std::option::Option<jacquard_common::types::string::AtUri<'a>>, 907 #[serde(skip_serializing_if = "std::option::Option::is_none")] 908 pub thread_muted: std::option::Option<bool>, 909}