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}