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