A better Rust ATProto crate
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)] 43#[serde(rename_all = "camelCase")] 44pub struct BlockedAuthor<'a> { 45 #[serde(borrow)] 46 pub did: jacquard_common::types::string::Did<'a>, 47 #[serde(skip_serializing_if = "std::option::Option::is_none")] 48 #[serde(borrow)] 49 pub viewer: std::option::Option<crate::app_bsky::actor::ViewerState<'a>>, 50} 51 52#[jacquard_derive::lexicon] 53#[derive( 54 serde::Serialize, 55 serde::Deserialize, 56 Debug, 57 Clone, 58 PartialEq, 59 Eq, 60 jacquard_derive::IntoStatic 61)] 62#[serde(rename_all = "camelCase")] 63pub struct BlockedPost<'a> { 64 #[serde(borrow)] 65 pub author: crate::app_bsky::feed::BlockedAuthor<'a>, 66 pub blocked: bool, 67 #[serde(borrow)] 68 pub uri: jacquard_common::types::string::AtUri<'a>, 69} 70 71#[jacquard_derive::lexicon] 72#[derive( 73 serde::Serialize, 74 serde::Deserialize, 75 Debug, 76 Clone, 77 PartialEq, 78 Eq, 79 jacquard_derive::IntoStatic 80)] 81#[serde(rename_all = "camelCase")] 82pub struct FeedViewPost<'a> { 83 ///Context provided by feed generator that may be passed back alongside interactions. 84 #[serde(skip_serializing_if = "std::option::Option::is_none")] 85 #[serde(borrow)] 86 pub feed_context: std::option::Option<jacquard_common::CowStr<'a>>, 87 #[serde(borrow)] 88 pub post: crate::app_bsky::feed::PostView<'a>, 89 #[serde(skip_serializing_if = "std::option::Option::is_none")] 90 #[serde(borrow)] 91 pub reason: std::option::Option<FeedViewPostRecordReason<'a>>, 92 #[serde(skip_serializing_if = "std::option::Option::is_none")] 93 #[serde(borrow)] 94 pub reply: std::option::Option<crate::app_bsky::feed::ReplyRef<'a>>, 95 ///Unique identifier per request that may be passed back alongside interactions. 96 #[serde(skip_serializing_if = "std::option::Option::is_none")] 97 #[serde(borrow)] 98 pub req_id: std::option::Option<jacquard_common::CowStr<'a>>, 99} 100 101#[jacquard_derive::open_union] 102#[derive( 103 serde::Serialize, 104 serde::Deserialize, 105 Debug, 106 Clone, 107 PartialEq, 108 Eq, 109 jacquard_derive::IntoStatic 110)] 111#[serde(tag = "$type")] 112#[serde(bound(deserialize = "'de: 'a"))] 113pub enum FeedViewPostRecordReason<'a> {} 114#[jacquard_derive::lexicon] 115#[derive( 116 serde::Serialize, 117 serde::Deserialize, 118 Debug, 119 Clone, 120 PartialEq, 121 Eq, 122 jacquard_derive::IntoStatic 123)] 124#[serde(rename_all = "camelCase")] 125pub struct GeneratorView<'a> { 126 #[serde(skip_serializing_if = "std::option::Option::is_none")] 127 pub accepts_interactions: std::option::Option<bool>, 128 #[serde(skip_serializing_if = "std::option::Option::is_none")] 129 #[serde(borrow)] 130 pub avatar: std::option::Option<jacquard_common::types::string::Uri<'a>>, 131 #[serde(borrow)] 132 pub cid: jacquard_common::types::string::Cid<'a>, 133 #[serde(skip_serializing_if = "std::option::Option::is_none")] 134 #[serde(borrow)] 135 pub content_mode: std::option::Option<jacquard_common::CowStr<'a>>, 136 #[serde(borrow)] 137 pub creator: crate::app_bsky::actor::ProfileView<'a>, 138 #[serde(skip_serializing_if = "std::option::Option::is_none")] 139 #[serde(borrow)] 140 pub description: std::option::Option<jacquard_common::CowStr<'a>>, 141 #[serde(skip_serializing_if = "std::option::Option::is_none")] 142 #[serde(borrow)] 143 pub description_facets: std::option::Option< 144 Vec<crate::app_bsky::richtext::facet::Facet<'a>>, 145 >, 146 #[serde(borrow)] 147 pub did: jacquard_common::types::string::Did<'a>, 148 #[serde(borrow)] 149 pub display_name: jacquard_common::CowStr<'a>, 150 pub indexed_at: jacquard_common::types::string::Datetime, 151 #[serde(skip_serializing_if = "std::option::Option::is_none")] 152 #[serde(borrow)] 153 pub labels: std::option::Option<Vec<crate::com_atproto::label::Label<'a>>>, 154 #[serde(skip_serializing_if = "std::option::Option::is_none")] 155 pub like_count: std::option::Option<i64>, 156 #[serde(borrow)] 157 pub uri: jacquard_common::types::string::AtUri<'a>, 158 #[serde(skip_serializing_if = "std::option::Option::is_none")] 159 #[serde(borrow)] 160 pub viewer: std::option::Option<crate::app_bsky::feed::GeneratorViewerState<'a>>, 161} 162 163#[jacquard_derive::lexicon] 164#[derive( 165 serde::Serialize, 166 serde::Deserialize, 167 Debug, 168 Clone, 169 PartialEq, 170 Eq, 171 jacquard_derive::IntoStatic 172)] 173#[serde(rename_all = "camelCase")] 174pub struct GeneratorViewerState<'a> { 175 #[serde(skip_serializing_if = "std::option::Option::is_none")] 176 #[serde(borrow)] 177 pub like: std::option::Option<jacquard_common::types::string::AtUri<'a>>, 178} 179 180#[jacquard_derive::lexicon] 181#[derive( 182 serde::Serialize, 183 serde::Deserialize, 184 Debug, 185 Clone, 186 PartialEq, 187 Eq, 188 jacquard_derive::IntoStatic 189)] 190#[serde(rename_all = "camelCase")] 191pub struct Interaction<'a> { 192 #[serde(skip_serializing_if = "std::option::Option::is_none")] 193 #[serde(borrow)] 194 pub event: std::option::Option<jacquard_common::CowStr<'a>>, 195 ///Context on a feed item that was originally supplied by the feed generator on getFeedSkeleton. 196 #[serde(skip_serializing_if = "std::option::Option::is_none")] 197 #[serde(borrow)] 198 pub feed_context: std::option::Option<jacquard_common::CowStr<'a>>, 199 #[serde(skip_serializing_if = "std::option::Option::is_none")] 200 #[serde(borrow)] 201 pub item: std::option::Option<jacquard_common::types::string::AtUri<'a>>, 202 ///Unique identifier per request that may be passed back alongside interactions. 203 #[serde(skip_serializing_if = "std::option::Option::is_none")] 204 #[serde(borrow)] 205 pub req_id: std::option::Option<jacquard_common::CowStr<'a>>, 206} 207 208#[jacquard_derive::lexicon] 209#[derive( 210 serde::Serialize, 211 serde::Deserialize, 212 Debug, 213 Clone, 214 PartialEq, 215 Eq, 216 jacquard_derive::IntoStatic 217)] 218#[serde(rename_all = "camelCase")] 219pub struct NotFoundPost<'a> { 220 pub not_found: bool, 221 #[serde(borrow)] 222 pub uri: jacquard_common::types::string::AtUri<'a>, 223} 224 225#[jacquard_derive::lexicon] 226#[derive( 227 serde::Serialize, 228 serde::Deserialize, 229 Debug, 230 Clone, 231 PartialEq, 232 Eq, 233 jacquard_derive::IntoStatic 234)] 235#[serde(rename_all = "camelCase")] 236pub struct PostView<'a> { 237 #[serde(borrow)] 238 pub author: crate::app_bsky::actor::ProfileViewBasic<'a>, 239 #[serde(skip_serializing_if = "std::option::Option::is_none")] 240 pub bookmark_count: std::option::Option<i64>, 241 #[serde(borrow)] 242 pub cid: jacquard_common::types::string::Cid<'a>, 243 #[serde(skip_serializing_if = "std::option::Option::is_none")] 244 #[serde(borrow)] 245 pub embed: std::option::Option<PostViewRecordEmbed<'a>>, 246 pub indexed_at: jacquard_common::types::string::Datetime, 247 #[serde(skip_serializing_if = "std::option::Option::is_none")] 248 #[serde(borrow)] 249 pub labels: std::option::Option<Vec<crate::com_atproto::label::Label<'a>>>, 250 #[serde(skip_serializing_if = "std::option::Option::is_none")] 251 pub like_count: std::option::Option<i64>, 252 #[serde(skip_serializing_if = "std::option::Option::is_none")] 253 pub quote_count: std::option::Option<i64>, 254 #[serde(borrow)] 255 pub record: jacquard_common::types::value::Data<'a>, 256 #[serde(skip_serializing_if = "std::option::Option::is_none")] 257 pub reply_count: std::option::Option<i64>, 258 #[serde(skip_serializing_if = "std::option::Option::is_none")] 259 pub repost_count: std::option::Option<i64>, 260 #[serde(skip_serializing_if = "std::option::Option::is_none")] 261 #[serde(borrow)] 262 pub threadgate: std::option::Option<crate::app_bsky::feed::ThreadgateView<'a>>, 263 #[serde(borrow)] 264 pub uri: jacquard_common::types::string::AtUri<'a>, 265 #[serde(skip_serializing_if = "std::option::Option::is_none")] 266 #[serde(borrow)] 267 pub viewer: std::option::Option<crate::app_bsky::feed::ViewerState<'a>>, 268} 269 270#[jacquard_derive::open_union] 271#[derive( 272 serde::Serialize, 273 serde::Deserialize, 274 Debug, 275 Clone, 276 PartialEq, 277 Eq, 278 jacquard_derive::IntoStatic 279)] 280#[serde(tag = "$type")] 281#[serde(bound(deserialize = "'de: 'a"))] 282pub enum PostViewRecordEmbed<'a> { 283 #[serde(rename = "app.bsky.embed.images#view")] 284 ImagesView(Box<crate::app_bsky::embed::images::View<'a>>), 285 #[serde(rename = "app.bsky.embed.video#view")] 286 VideoView(Box<crate::app_bsky::embed::video::View<'a>>), 287 #[serde(rename = "app.bsky.embed.external#view")] 288 ExternalView(Box<crate::app_bsky::embed::external::View<'a>>), 289 #[serde(rename = "app.bsky.embed.record#view")] 290 RecordView(Box<crate::app_bsky::embed::record::View<'a>>), 291 #[serde(rename = "app.bsky.embed.recordWithMedia#view")] 292 RecordWithMediaView(Box<crate::app_bsky::embed::record_with_media::View<'a>>), 293} 294 295#[jacquard_derive::lexicon] 296#[derive( 297 serde::Serialize, 298 serde::Deserialize, 299 Debug, 300 Clone, 301 PartialEq, 302 Eq, 303 jacquard_derive::IntoStatic 304)] 305#[serde(rename_all = "camelCase")] 306pub struct ReasonPin<'a> {} 307#[jacquard_derive::lexicon] 308#[derive( 309 serde::Serialize, 310 serde::Deserialize, 311 Debug, 312 Clone, 313 PartialEq, 314 Eq, 315 jacquard_derive::IntoStatic 316)] 317#[serde(rename_all = "camelCase")] 318pub struct ReasonRepost<'a> { 319 #[serde(borrow)] 320 pub by: crate::app_bsky::actor::ProfileViewBasic<'a>, 321 #[serde(skip_serializing_if = "std::option::Option::is_none")] 322 #[serde(borrow)] 323 pub cid: std::option::Option<jacquard_common::types::string::Cid<'a>>, 324 pub indexed_at: jacquard_common::types::string::Datetime, 325 #[serde(skip_serializing_if = "std::option::Option::is_none")] 326 #[serde(borrow)] 327 pub uri: std::option::Option<jacquard_common::types::string::AtUri<'a>>, 328} 329 330#[jacquard_derive::lexicon] 331#[derive( 332 serde::Serialize, 333 serde::Deserialize, 334 Debug, 335 Clone, 336 PartialEq, 337 Eq, 338 jacquard_derive::IntoStatic 339)] 340#[serde(rename_all = "camelCase")] 341pub struct ReplyRef<'a> { 342 ///When parent is a reply to another post, this is the author of that post. 343 #[serde(skip_serializing_if = "std::option::Option::is_none")] 344 #[serde(borrow)] 345 pub grandparent_author: std::option::Option< 346 crate::app_bsky::actor::ProfileViewBasic<'a>, 347 >, 348 #[serde(borrow)] 349 pub parent: ReplyRefRecordParent<'a>, 350 #[serde(borrow)] 351 pub root: ReplyRefRecordRoot<'a>, 352} 353 354#[jacquard_derive::open_union] 355#[derive( 356 serde::Serialize, 357 serde::Deserialize, 358 Debug, 359 Clone, 360 PartialEq, 361 Eq, 362 jacquard_derive::IntoStatic 363)] 364#[serde(tag = "$type")] 365#[serde(bound(deserialize = "'de: 'a"))] 366pub enum ReplyRefRecordParent<'a> {} 367#[jacquard_derive::open_union] 368#[derive( 369 serde::Serialize, 370 serde::Deserialize, 371 Debug, 372 Clone, 373 PartialEq, 374 Eq, 375 jacquard_derive::IntoStatic 376)] 377#[serde(tag = "$type")] 378#[serde(bound(deserialize = "'de: 'a"))] 379pub enum ReplyRefRecordRoot<'a> {} 380#[jacquard_derive::lexicon] 381#[derive( 382 serde::Serialize, 383 serde::Deserialize, 384 Debug, 385 Clone, 386 PartialEq, 387 Eq, 388 jacquard_derive::IntoStatic 389)] 390#[serde(rename_all = "camelCase")] 391pub struct SkeletonFeedPost<'a> { 392 ///Context that will be passed through to client and may be passed to feed generator back alongside interactions. 393 #[serde(skip_serializing_if = "std::option::Option::is_none")] 394 #[serde(borrow)] 395 pub feed_context: std::option::Option<jacquard_common::CowStr<'a>>, 396 #[serde(borrow)] 397 pub post: jacquard_common::types::string::AtUri<'a>, 398 #[serde(skip_serializing_if = "std::option::Option::is_none")] 399 #[serde(borrow)] 400 pub reason: std::option::Option<SkeletonFeedPostRecordReason<'a>>, 401} 402 403#[jacquard_derive::open_union] 404#[derive( 405 serde::Serialize, 406 serde::Deserialize, 407 Debug, 408 Clone, 409 PartialEq, 410 Eq, 411 jacquard_derive::IntoStatic 412)] 413#[serde(tag = "$type")] 414#[serde(bound(deserialize = "'de: 'a"))] 415pub enum SkeletonFeedPostRecordReason<'a> {} 416#[jacquard_derive::lexicon] 417#[derive( 418 serde::Serialize, 419 serde::Deserialize, 420 Debug, 421 Clone, 422 PartialEq, 423 Eq, 424 jacquard_derive::IntoStatic 425)] 426#[serde(rename_all = "camelCase")] 427pub struct SkeletonReasonPin<'a> {} 428#[jacquard_derive::lexicon] 429#[derive( 430 serde::Serialize, 431 serde::Deserialize, 432 Debug, 433 Clone, 434 PartialEq, 435 Eq, 436 jacquard_derive::IntoStatic 437)] 438#[serde(rename_all = "camelCase")] 439pub struct SkeletonReasonRepost<'a> { 440 #[serde(borrow)] 441 pub repost: jacquard_common::types::string::AtUri<'a>, 442} 443 444///Metadata about this post within the context of the thread it is in. 445#[jacquard_derive::lexicon] 446#[derive( 447 serde::Serialize, 448 serde::Deserialize, 449 Debug, 450 Clone, 451 PartialEq, 452 Eq, 453 jacquard_derive::IntoStatic 454)] 455#[serde(rename_all = "camelCase")] 456pub struct ThreadContext<'a> { 457 #[serde(skip_serializing_if = "std::option::Option::is_none")] 458 #[serde(borrow)] 459 pub root_author_like: std::option::Option<jacquard_common::types::string::AtUri<'a>>, 460} 461 462#[jacquard_derive::lexicon] 463#[derive( 464 serde::Serialize, 465 serde::Deserialize, 466 Debug, 467 Clone, 468 PartialEq, 469 Eq, 470 jacquard_derive::IntoStatic 471)] 472#[serde(rename_all = "camelCase")] 473pub struct ThreadViewPost<'a> { 474 #[serde(skip_serializing_if = "std::option::Option::is_none")] 475 #[serde(borrow)] 476 pub parent: std::option::Option<ThreadViewPostRecordParent<'a>>, 477 #[serde(borrow)] 478 pub post: crate::app_bsky::feed::PostView<'a>, 479 #[serde(skip_serializing_if = "std::option::Option::is_none")] 480 #[serde(borrow)] 481 pub replies: std::option::Option<Vec<jacquard_common::types::value::Data<'a>>>, 482 #[serde(skip_serializing_if = "std::option::Option::is_none")] 483 #[serde(borrow)] 484 pub thread_context: std::option::Option<crate::app_bsky::feed::ThreadContext<'a>>, 485} 486 487#[jacquard_derive::open_union] 488#[derive( 489 serde::Serialize, 490 serde::Deserialize, 491 Debug, 492 Clone, 493 PartialEq, 494 Eq, 495 jacquard_derive::IntoStatic 496)] 497#[serde(tag = "$type")] 498#[serde(bound(deserialize = "'de: 'a"))] 499pub enum ThreadViewPostRecordParent<'a> {} 500#[jacquard_derive::lexicon] 501#[derive( 502 serde::Serialize, 503 serde::Deserialize, 504 Debug, 505 Clone, 506 PartialEq, 507 Eq, 508 jacquard_derive::IntoStatic 509)] 510#[serde(rename_all = "camelCase")] 511pub struct ThreadgateView<'a> { 512 #[serde(skip_serializing_if = "std::option::Option::is_none")] 513 #[serde(borrow)] 514 pub cid: std::option::Option<jacquard_common::types::string::Cid<'a>>, 515 #[serde(skip_serializing_if = "std::option::Option::is_none")] 516 #[serde(borrow)] 517 pub lists: std::option::Option<Vec<crate::app_bsky::graph::ListViewBasic<'a>>>, 518 #[serde(skip_serializing_if = "std::option::Option::is_none")] 519 #[serde(borrow)] 520 pub record: std::option::Option<jacquard_common::types::value::Data<'a>>, 521 #[serde(skip_serializing_if = "std::option::Option::is_none")] 522 #[serde(borrow)] 523 pub uri: std::option::Option<jacquard_common::types::string::AtUri<'a>>, 524} 525 526///Metadata about the requesting account's relationship with the subject content. Only has meaningful content for authed requests. 527#[jacquard_derive::lexicon] 528#[derive( 529 serde::Serialize, 530 serde::Deserialize, 531 Debug, 532 Clone, 533 PartialEq, 534 Eq, 535 jacquard_derive::IntoStatic 536)] 537#[serde(rename_all = "camelCase")] 538pub struct ViewerState<'a> { 539 #[serde(skip_serializing_if = "std::option::Option::is_none")] 540 pub bookmarked: std::option::Option<bool>, 541 #[serde(skip_serializing_if = "std::option::Option::is_none")] 542 pub embedding_disabled: std::option::Option<bool>, 543 #[serde(skip_serializing_if = "std::option::Option::is_none")] 544 #[serde(borrow)] 545 pub like: std::option::Option<jacquard_common::types::string::AtUri<'a>>, 546 #[serde(skip_serializing_if = "std::option::Option::is_none")] 547 pub pinned: std::option::Option<bool>, 548 #[serde(skip_serializing_if = "std::option::Option::is_none")] 549 pub reply_disabled: std::option::Option<bool>, 550 #[serde(skip_serializing_if = "std::option::Option::is_none")] 551 #[serde(borrow)] 552 pub repost: std::option::Option<jacquard_common::types::string::AtUri<'a>>, 553 #[serde(skip_serializing_if = "std::option::Option::is_none")] 554 pub thread_muted: std::option::Option<bool>, 555}