1// @generated by jacquard-lexicon. DO NOT EDIT.
2//
3// Lexicon: app.bsky.actor.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 get_preferences;
9pub mod get_profile;
10pub mod get_profiles;
11pub mod get_suggestions;
12pub mod profile;
13pub mod put_preferences;
14pub mod search_actors;
15pub mod search_actors_typeahead;
16pub mod status;
17
18#[jacquard_derive::lexicon]
19#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
20#[serde(rename_all = "camelCase")]
21pub struct AdultContentPref<'a> {
22 pub enabled: bool,
23}
24
25impl jacquard_common::IntoStatic for AdultContentPref<'_> {
26 type Output = AdultContentPref<'static>;
27 fn into_static(self) -> Self::Output {
28 AdultContentPref {
29 enabled: self.enabled.into_static(),
30 extra_data: self.extra_data.into_static(),
31 }
32 }
33}
34
35///If set, an active progress guide. Once completed, can be set to undefined. Should have unspecced fields tracking progress.
36#[jacquard_derive::lexicon]
37#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
38#[serde(rename_all = "camelCase")]
39pub struct BskyAppProgressGuide<'a> {
40 #[serde(borrow)]
41 pub guide: jacquard_common::CowStr<'a>,
42}
43
44impl jacquard_common::IntoStatic for BskyAppProgressGuide<'_> {
45 type Output = BskyAppProgressGuide<'static>;
46 fn into_static(self) -> Self::Output {
47 BskyAppProgressGuide {
48 guide: self.guide.into_static(),
49 extra_data: self.extra_data.into_static(),
50 }
51 }
52}
53
54///A grab bag of state that's specific to the bsky.app program. Third-party apps shouldn't use this.
55#[jacquard_derive::lexicon]
56#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
57#[serde(rename_all = "camelCase")]
58pub struct BskyAppStatePref<'a> {
59 #[serde(skip_serializing_if = "std::option::Option::is_none")]
60 #[serde(borrow)]
61 pub active_progress_guide: std::option::Option<
62 crate::app_bsky::actor::BskyAppProgressGuide<'a>,
63 >,
64 ///Storage for NUXs the user has encountered.
65 #[serde(skip_serializing_if = "std::option::Option::is_none")]
66 #[serde(borrow)]
67 pub nuxs: std::option::Option<Vec<crate::app_bsky::actor::Nux<'a>>>,
68 ///An array of tokens which identify nudges (modals, popups, tours, highlight dots) that should be shown to the user.
69 #[serde(skip_serializing_if = "std::option::Option::is_none")]
70 #[serde(borrow)]
71 pub queued_nudges: std::option::Option<Vec<jacquard_common::CowStr<'a>>>,
72}
73
74impl jacquard_common::IntoStatic for BskyAppStatePref<'_> {
75 type Output = BskyAppStatePref<'static>;
76 fn into_static(self) -> Self::Output {
77 BskyAppStatePref {
78 active_progress_guide: self.active_progress_guide.into_static(),
79 nuxs: self.nuxs.into_static(),
80 queued_nudges: self.queued_nudges.into_static(),
81 extra_data: self.extra_data.into_static(),
82 }
83 }
84}
85
86#[jacquard_derive::lexicon]
87#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
88#[serde(rename_all = "camelCase")]
89pub struct ContentLabelPref<'a> {
90 #[serde(borrow)]
91 pub label: jacquard_common::CowStr<'a>,
92 ///Which labeler does this preference apply to? If undefined, applies globally.
93 #[serde(skip_serializing_if = "std::option::Option::is_none")]
94 #[serde(borrow)]
95 pub labeler_did: std::option::Option<jacquard_common::types::string::Did<'a>>,
96 #[serde(borrow)]
97 pub visibility: jacquard_common::CowStr<'a>,
98}
99
100impl jacquard_common::IntoStatic for ContentLabelPref<'_> {
101 type Output = ContentLabelPref<'static>;
102 fn into_static(self) -> Self::Output {
103 ContentLabelPref {
104 label: self.label.into_static(),
105 labeler_did: self.labeler_did.into_static(),
106 visibility: self.visibility.into_static(),
107 extra_data: self.extra_data.into_static(),
108 }
109 }
110}
111
112#[jacquard_derive::lexicon]
113#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
114#[serde(rename_all = "camelCase")]
115pub struct FeedViewPref<'a> {
116 ///The URI of the feed, or an identifier which describes the feed.
117 #[serde(borrow)]
118 pub feed: jacquard_common::CowStr<'a>,
119 ///Hide quote posts in the feed.
120 #[serde(skip_serializing_if = "std::option::Option::is_none")]
121 pub hide_quote_posts: std::option::Option<bool>,
122 ///Hide replies in the feed.
123 #[serde(skip_serializing_if = "std::option::Option::is_none")]
124 pub hide_replies: std::option::Option<bool>,
125 ///Hide replies in the feed if they do not have this number of likes.
126 #[serde(skip_serializing_if = "std::option::Option::is_none")]
127 pub hide_replies_by_like_count: std::option::Option<i64>,
128 ///Hide replies in the feed if they are not by followed users.
129 #[serde(skip_serializing_if = "std::option::Option::is_none")]
130 pub hide_replies_by_unfollowed: std::option::Option<bool>,
131 ///Hide reposts in the feed.
132 #[serde(skip_serializing_if = "std::option::Option::is_none")]
133 pub hide_reposts: std::option::Option<bool>,
134}
135
136impl jacquard_common::IntoStatic for FeedViewPref<'_> {
137 type Output = FeedViewPref<'static>;
138 fn into_static(self) -> Self::Output {
139 FeedViewPref {
140 feed: self.feed.into_static(),
141 hide_quote_posts: self.hide_quote_posts.into_static(),
142 hide_replies: self.hide_replies.into_static(),
143 hide_replies_by_like_count: self.hide_replies_by_like_count.into_static(),
144 hide_replies_by_unfollowed: self.hide_replies_by_unfollowed.into_static(),
145 hide_reposts: self.hide_reposts.into_static(),
146 extra_data: self.extra_data.into_static(),
147 }
148 }
149}
150
151#[jacquard_derive::lexicon]
152#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
153#[serde(rename_all = "camelCase")]
154pub struct HiddenPostsPref<'a> {
155 ///A list of URIs of posts the account owner has hidden.
156 #[serde(borrow)]
157 pub items: Vec<jacquard_common::types::string::AtUri<'a>>,
158}
159
160impl jacquard_common::IntoStatic for HiddenPostsPref<'_> {
161 type Output = HiddenPostsPref<'static>;
162 fn into_static(self) -> Self::Output {
163 HiddenPostsPref {
164 items: self.items.into_static(),
165 extra_data: self.extra_data.into_static(),
166 }
167 }
168}
169
170#[jacquard_derive::lexicon]
171#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
172#[serde(rename_all = "camelCase")]
173pub struct InterestsPref<'a> {
174 ///A list of tags which describe the account owner's interests gathered during onboarding.
175 #[serde(borrow)]
176 pub tags: Vec<jacquard_common::CowStr<'a>>,
177}
178
179impl jacquard_common::IntoStatic for InterestsPref<'_> {
180 type Output = InterestsPref<'static>;
181 fn into_static(self) -> Self::Output {
182 InterestsPref {
183 tags: self.tags.into_static(),
184 extra_data: self.extra_data.into_static(),
185 }
186 }
187}
188
189///The subject's followers whom you also follow
190#[jacquard_derive::lexicon]
191#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
192#[serde(rename_all = "camelCase")]
193pub struct KnownFollowers<'a> {
194 pub count: i64,
195 #[serde(borrow)]
196 pub followers: Vec<crate::app_bsky::actor::ProfileViewBasic<'a>>,
197}
198
199impl jacquard_common::IntoStatic for KnownFollowers<'_> {
200 type Output = KnownFollowers<'static>;
201 fn into_static(self) -> Self::Output {
202 KnownFollowers {
203 count: self.count.into_static(),
204 followers: self.followers.into_static(),
205 extra_data: self.extra_data.into_static(),
206 }
207 }
208}
209
210#[jacquard_derive::lexicon]
211#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
212#[serde(rename_all = "camelCase")]
213pub struct LabelerPrefItem<'a> {
214 #[serde(borrow)]
215 pub did: jacquard_common::types::string::Did<'a>,
216}
217
218impl jacquard_common::IntoStatic for LabelerPrefItem<'_> {
219 type Output = LabelerPrefItem<'static>;
220 fn into_static(self) -> Self::Output {
221 LabelerPrefItem {
222 did: self.did.into_static(),
223 extra_data: self.extra_data.into_static(),
224 }
225 }
226}
227
228#[jacquard_derive::lexicon]
229#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
230#[serde(rename_all = "camelCase")]
231pub struct LabelersPref<'a> {
232 #[serde(borrow)]
233 pub labelers: Vec<crate::app_bsky::actor::LabelerPrefItem<'a>>,
234}
235
236impl jacquard_common::IntoStatic for LabelersPref<'_> {
237 type Output = LabelersPref<'static>;
238 fn into_static(self) -> Self::Output {
239 LabelersPref {
240 labelers: self.labelers.into_static(),
241 extra_data: self.extra_data.into_static(),
242 }
243 }
244}
245
246///A word that the account owner has muted.
247#[jacquard_derive::lexicon]
248#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
249#[serde(rename_all = "camelCase")]
250pub struct MutedWord<'a> {
251 ///Groups of users to apply the muted word to. If undefined, applies to all users.
252 #[serde(skip_serializing_if = "std::option::Option::is_none")]
253 #[serde(borrow)]
254 pub actor_target: std::option::Option<jacquard_common::CowStr<'a>>,
255 ///The date and time at which the muted word will expire and no longer be applied.
256 #[serde(skip_serializing_if = "std::option::Option::is_none")]
257 pub expires_at: std::option::Option<jacquard_common::types::string::Datetime>,
258 #[serde(skip_serializing_if = "std::option::Option::is_none")]
259 #[serde(borrow)]
260 pub id: std::option::Option<jacquard_common::CowStr<'a>>,
261 ///The intended targets of the muted word.
262 #[serde(borrow)]
263 pub targets: Vec<crate::app_bsky::actor::MutedWordTarget<'a>>,
264 ///The muted word itself.
265 #[serde(borrow)]
266 pub value: jacquard_common::CowStr<'a>,
267}
268
269impl jacquard_common::IntoStatic for MutedWord<'_> {
270 type Output = MutedWord<'static>;
271 fn into_static(self) -> Self::Output {
272 MutedWord {
273 actor_target: self.actor_target.into_static(),
274 expires_at: self.expires_at.into_static(),
275 id: self.id.into_static(),
276 targets: self.targets.into_static(),
277 value: self.value.into_static(),
278 extra_data: self.extra_data.into_static(),
279 }
280 }
281}
282
283#[derive(Debug, Clone, PartialEq, Eq, Hash)]
284pub enum MutedWordTarget<'a> {
285 Content,
286 Tag,
287 Other(jacquard_common::CowStr<'a>),
288}
289
290impl<'a> MutedWordTarget<'a> {
291 pub fn as_str(&self) -> &str {
292 match self {
293 Self::Content => "content",
294 Self::Tag => "tag",
295 Self::Other(s) => s.as_ref(),
296 }
297 }
298}
299
300impl<'a> From<&'a str> for MutedWordTarget<'a> {
301 fn from(s: &'a str) -> Self {
302 match s {
303 "content" => Self::Content,
304 "tag" => Self::Tag,
305 _ => Self::Other(jacquard_common::CowStr::from(s)),
306 }
307 }
308}
309
310impl<'a> From<String> for MutedWordTarget<'a> {
311 fn from(s: String) -> Self {
312 match s.as_str() {
313 "content" => Self::Content,
314 "tag" => Self::Tag,
315 _ => Self::Other(jacquard_common::CowStr::from(s)),
316 }
317 }
318}
319
320impl<'a> AsRef<str> for MutedWordTarget<'a> {
321 fn as_ref(&self) -> &str {
322 self.as_str()
323 }
324}
325
326impl<'a> serde::Serialize for MutedWordTarget<'a> {
327 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
328 where
329 S: serde::Serializer,
330 {
331 serializer.serialize_str(self.as_str())
332 }
333}
334
335impl<'de, 'a> serde::Deserialize<'de> for MutedWordTarget<'a>
336where
337 'de: 'a,
338{
339 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
340 where
341 D: serde::Deserializer<'de>,
342 {
343 let s = <&'de str>::deserialize(deserializer)?;
344 Ok(Self::from(s))
345 }
346}
347
348impl jacquard_common::IntoStatic for MutedWordTarget<'_> {
349 type Output = MutedWordTarget<'static>;
350 fn into_static(self) -> Self::Output {
351 match self {
352 MutedWordTarget::Content => MutedWordTarget::Content,
353 MutedWordTarget::Tag => MutedWordTarget::Tag,
354 MutedWordTarget::Other(v) => MutedWordTarget::Other(v.into_static()),
355 }
356 }
357}
358
359#[jacquard_derive::lexicon]
360#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
361#[serde(rename_all = "camelCase")]
362pub struct MutedWordsPref<'a> {
363 ///A list of words the account owner has muted.
364 #[serde(borrow)]
365 pub items: Vec<crate::app_bsky::actor::MutedWord<'a>>,
366}
367
368impl jacquard_common::IntoStatic for MutedWordsPref<'_> {
369 type Output = MutedWordsPref<'static>;
370 fn into_static(self) -> Self::Output {
371 MutedWordsPref {
372 items: self.items.into_static(),
373 extra_data: self.extra_data.into_static(),
374 }
375 }
376}
377
378///A new user experiences (NUX) storage object
379#[jacquard_derive::lexicon]
380#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
381#[serde(rename_all = "camelCase")]
382pub struct Nux<'a> {
383 pub completed: bool,
384 ///Arbitrary data for the NUX. The structure is defined by the NUX itself. Limited to 300 characters.
385 #[serde(skip_serializing_if = "std::option::Option::is_none")]
386 #[serde(borrow)]
387 pub data: std::option::Option<jacquard_common::CowStr<'a>>,
388 ///The date and time at which the NUX will expire and should be considered completed.
389 #[serde(skip_serializing_if = "std::option::Option::is_none")]
390 pub expires_at: std::option::Option<jacquard_common::types::string::Datetime>,
391 #[serde(borrow)]
392 pub id: jacquard_common::CowStr<'a>,
393}
394
395impl jacquard_common::IntoStatic for Nux<'_> {
396 type Output = Nux<'static>;
397 fn into_static(self) -> Self::Output {
398 Nux {
399 completed: self.completed.into_static(),
400 data: self.data.into_static(),
401 expires_at: self.expires_at.into_static(),
402 id: self.id.into_static(),
403 extra_data: self.extra_data.into_static(),
404 }
405 }
406}
407
408#[jacquard_derive::lexicon]
409#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
410#[serde(rename_all = "camelCase")]
411pub struct PersonalDetailsPref<'a> {
412 ///The birth date of account owner.
413 #[serde(skip_serializing_if = "std::option::Option::is_none")]
414 pub birth_date: std::option::Option<jacquard_common::types::string::Datetime>,
415}
416
417impl jacquard_common::IntoStatic for PersonalDetailsPref<'_> {
418 type Output = PersonalDetailsPref<'static>;
419 fn into_static(self) -> Self::Output {
420 PersonalDetailsPref {
421 birth_date: self.birth_date.into_static(),
422 extra_data: self.extra_data.into_static(),
423 }
424 }
425}
426
427///Default post interaction settings for the account. These values should be applied as default values when creating new posts. These refs should mirror the threadgate and postgate records exactly.
428#[jacquard_derive::lexicon]
429#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
430#[serde(rename_all = "camelCase")]
431pub struct PostInteractionSettingsPref<'a> {
432 ///Matches postgate record. List of rules defining who can embed this users posts. If value is an empty array or is undefined, no particular rules apply and anyone can embed.
433 #[serde(skip_serializing_if = "std::option::Option::is_none")]
434 #[serde(borrow)]
435 pub postgate_embedding_rules: std::option::Option<
436 Vec<jacquard_common::types::value::Data<'a>>,
437 >,
438 ///Matches threadgate record. List of rules defining who can reply to this users posts. If value is an empty array, no one can reply. If value is undefined, anyone can reply.
439 #[serde(skip_serializing_if = "std::option::Option::is_none")]
440 #[serde(borrow)]
441 pub threadgate_allow_rules: std::option::Option<
442 Vec<jacquard_common::types::value::Data<'a>>,
443 >,
444}
445
446impl jacquard_common::IntoStatic for PostInteractionSettingsPref<'_> {
447 type Output = PostInteractionSettingsPref<'static>;
448 fn into_static(self) -> Self::Output {
449 PostInteractionSettingsPref {
450 postgate_embedding_rules: self.postgate_embedding_rules.into_static(),
451 threadgate_allow_rules: self.threadgate_allow_rules.into_static(),
452 extra_data: self.extra_data.into_static(),
453 }
454 }
455}
456
457pub type Preferences<'a> = Vec<jacquard_common::types::value::Data<'a>>;
458#[jacquard_derive::lexicon]
459#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
460#[serde(rename_all = "camelCase")]
461pub struct ProfileAssociated<'a> {
462 #[serde(skip_serializing_if = "std::option::Option::is_none")]
463 #[serde(borrow)]
464 pub activity_subscription: std::option::Option<
465 crate::app_bsky::actor::ProfileAssociatedActivitySubscription<'a>,
466 >,
467 #[serde(skip_serializing_if = "std::option::Option::is_none")]
468 #[serde(borrow)]
469 pub chat: std::option::Option<crate::app_bsky::actor::ProfileAssociatedChat<'a>>,
470 #[serde(skip_serializing_if = "std::option::Option::is_none")]
471 pub feedgens: std::option::Option<i64>,
472 #[serde(skip_serializing_if = "std::option::Option::is_none")]
473 pub labeler: std::option::Option<bool>,
474 #[serde(skip_serializing_if = "std::option::Option::is_none")]
475 pub lists: std::option::Option<i64>,
476 #[serde(skip_serializing_if = "std::option::Option::is_none")]
477 pub starter_packs: std::option::Option<i64>,
478}
479
480impl jacquard_common::IntoStatic for ProfileAssociated<'_> {
481 type Output = ProfileAssociated<'static>;
482 fn into_static(self) -> Self::Output {
483 ProfileAssociated {
484 activity_subscription: self.activity_subscription.into_static(),
485 chat: self.chat.into_static(),
486 feedgens: self.feedgens.into_static(),
487 labeler: self.labeler.into_static(),
488 lists: self.lists.into_static(),
489 starter_packs: self.starter_packs.into_static(),
490 extra_data: self.extra_data.into_static(),
491 }
492 }
493}
494
495#[jacquard_derive::lexicon]
496#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
497#[serde(rename_all = "camelCase")]
498pub struct ProfileAssociatedActivitySubscription<'a> {
499 #[serde(borrow)]
500 pub allow_subscriptions: jacquard_common::CowStr<'a>,
501}
502
503impl jacquard_common::IntoStatic for ProfileAssociatedActivitySubscription<'_> {
504 type Output = ProfileAssociatedActivitySubscription<'static>;
505 fn into_static(self) -> Self::Output {
506 ProfileAssociatedActivitySubscription {
507 allow_subscriptions: self.allow_subscriptions.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 ProfileAssociatedChat<'a> {
517 #[serde(borrow)]
518 pub allow_incoming: jacquard_common::CowStr<'a>,
519}
520
521impl jacquard_common::IntoStatic for ProfileAssociatedChat<'_> {
522 type Output = ProfileAssociatedChat<'static>;
523 fn into_static(self) -> Self::Output {
524 ProfileAssociatedChat {
525 allow_incoming: self.allow_incoming.into_static(),
526 extra_data: self.extra_data.into_static(),
527 }
528 }
529}
530
531#[jacquard_derive::lexicon]
532#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
533#[serde(rename_all = "camelCase")]
534pub struct ProfileView<'a> {
535 #[serde(skip_serializing_if = "std::option::Option::is_none")]
536 #[serde(borrow)]
537 pub associated: std::option::Option<crate::app_bsky::actor::ProfileAssociated<'a>>,
538 #[serde(skip_serializing_if = "std::option::Option::is_none")]
539 #[serde(borrow)]
540 pub avatar: std::option::Option<jacquard_common::types::string::Uri<'a>>,
541 #[serde(skip_serializing_if = "std::option::Option::is_none")]
542 pub created_at: std::option::Option<jacquard_common::types::string::Datetime>,
543 #[serde(skip_serializing_if = "std::option::Option::is_none")]
544 #[serde(borrow)]
545 pub description: std::option::Option<jacquard_common::CowStr<'a>>,
546 #[serde(borrow)]
547 pub did: jacquard_common::types::string::Did<'a>,
548 #[serde(skip_serializing_if = "std::option::Option::is_none")]
549 #[serde(borrow)]
550 pub display_name: std::option::Option<jacquard_common::CowStr<'a>>,
551 #[serde(borrow)]
552 pub handle: jacquard_common::types::string::Handle<'a>,
553 #[serde(skip_serializing_if = "std::option::Option::is_none")]
554 pub indexed_at: std::option::Option<jacquard_common::types::string::Datetime>,
555 #[serde(skip_serializing_if = "std::option::Option::is_none")]
556 #[serde(borrow)]
557 pub labels: std::option::Option<Vec<crate::com_atproto::label::Label<'a>>>,
558 #[serde(skip_serializing_if = "std::option::Option::is_none")]
559 #[serde(borrow)]
560 pub pronouns: std::option::Option<jacquard_common::CowStr<'a>>,
561 #[serde(skip_serializing_if = "std::option::Option::is_none")]
562 #[serde(borrow)]
563 pub status: std::option::Option<crate::app_bsky::actor::StatusView<'a>>,
564 #[serde(skip_serializing_if = "std::option::Option::is_none")]
565 #[serde(borrow)]
566 pub verification: std::option::Option<crate::app_bsky::actor::VerificationState<'a>>,
567 #[serde(skip_serializing_if = "std::option::Option::is_none")]
568 #[serde(borrow)]
569 pub viewer: std::option::Option<crate::app_bsky::actor::ViewerState<'a>>,
570}
571
572impl jacquard_common::IntoStatic for ProfileView<'_> {
573 type Output = ProfileView<'static>;
574 fn into_static(self) -> Self::Output {
575 ProfileView {
576 associated: self.associated.into_static(),
577 avatar: self.avatar.into_static(),
578 created_at: self.created_at.into_static(),
579 description: self.description.into_static(),
580 did: self.did.into_static(),
581 display_name: self.display_name.into_static(),
582 handle: self.handle.into_static(),
583 indexed_at: self.indexed_at.into_static(),
584 labels: self.labels.into_static(),
585 pronouns: self.pronouns.into_static(),
586 status: self.status.into_static(),
587 verification: self.verification.into_static(),
588 viewer: self.viewer.into_static(),
589 extra_data: self.extra_data.into_static(),
590 }
591 }
592}
593
594#[jacquard_derive::lexicon]
595#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
596#[serde(rename_all = "camelCase")]
597pub struct ProfileViewBasic<'a> {
598 #[serde(skip_serializing_if = "std::option::Option::is_none")]
599 #[serde(borrow)]
600 pub associated: std::option::Option<crate::app_bsky::actor::ProfileAssociated<'a>>,
601 #[serde(skip_serializing_if = "std::option::Option::is_none")]
602 #[serde(borrow)]
603 pub avatar: std::option::Option<jacquard_common::types::string::Uri<'a>>,
604 #[serde(skip_serializing_if = "std::option::Option::is_none")]
605 pub created_at: std::option::Option<jacquard_common::types::string::Datetime>,
606 #[serde(borrow)]
607 pub did: jacquard_common::types::string::Did<'a>,
608 #[serde(skip_serializing_if = "std::option::Option::is_none")]
609 #[serde(borrow)]
610 pub display_name: std::option::Option<jacquard_common::CowStr<'a>>,
611 #[serde(borrow)]
612 pub handle: jacquard_common::types::string::Handle<'a>,
613 #[serde(skip_serializing_if = "std::option::Option::is_none")]
614 #[serde(borrow)]
615 pub labels: std::option::Option<Vec<crate::com_atproto::label::Label<'a>>>,
616 #[serde(skip_serializing_if = "std::option::Option::is_none")]
617 #[serde(borrow)]
618 pub pronouns: std::option::Option<jacquard_common::CowStr<'a>>,
619 #[serde(skip_serializing_if = "std::option::Option::is_none")]
620 #[serde(borrow)]
621 pub status: std::option::Option<crate::app_bsky::actor::StatusView<'a>>,
622 #[serde(skip_serializing_if = "std::option::Option::is_none")]
623 #[serde(borrow)]
624 pub verification: std::option::Option<crate::app_bsky::actor::VerificationState<'a>>,
625 #[serde(skip_serializing_if = "std::option::Option::is_none")]
626 #[serde(borrow)]
627 pub viewer: std::option::Option<crate::app_bsky::actor::ViewerState<'a>>,
628}
629
630impl jacquard_common::IntoStatic for ProfileViewBasic<'_> {
631 type Output = ProfileViewBasic<'static>;
632 fn into_static(self) -> Self::Output {
633 ProfileViewBasic {
634 associated: self.associated.into_static(),
635 avatar: self.avatar.into_static(),
636 created_at: self.created_at.into_static(),
637 did: self.did.into_static(),
638 display_name: self.display_name.into_static(),
639 handle: self.handle.into_static(),
640 labels: self.labels.into_static(),
641 pronouns: self.pronouns.into_static(),
642 status: self.status.into_static(),
643 verification: self.verification.into_static(),
644 viewer: self.viewer.into_static(),
645 extra_data: self.extra_data.into_static(),
646 }
647 }
648}
649
650#[jacquard_derive::lexicon]
651#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
652#[serde(rename_all = "camelCase")]
653pub struct ProfileViewDetailed<'a> {
654 #[serde(skip_serializing_if = "std::option::Option::is_none")]
655 #[serde(borrow)]
656 pub associated: std::option::Option<crate::app_bsky::actor::ProfileAssociated<'a>>,
657 #[serde(skip_serializing_if = "std::option::Option::is_none")]
658 #[serde(borrow)]
659 pub avatar: std::option::Option<jacquard_common::types::string::Uri<'a>>,
660 #[serde(skip_serializing_if = "std::option::Option::is_none")]
661 #[serde(borrow)]
662 pub banner: std::option::Option<jacquard_common::types::string::Uri<'a>>,
663 #[serde(skip_serializing_if = "std::option::Option::is_none")]
664 pub created_at: std::option::Option<jacquard_common::types::string::Datetime>,
665 #[serde(skip_serializing_if = "std::option::Option::is_none")]
666 #[serde(borrow)]
667 pub description: std::option::Option<jacquard_common::CowStr<'a>>,
668 #[serde(borrow)]
669 pub did: jacquard_common::types::string::Did<'a>,
670 #[serde(skip_serializing_if = "std::option::Option::is_none")]
671 #[serde(borrow)]
672 pub display_name: std::option::Option<jacquard_common::CowStr<'a>>,
673 #[serde(skip_serializing_if = "std::option::Option::is_none")]
674 pub followers_count: std::option::Option<i64>,
675 #[serde(skip_serializing_if = "std::option::Option::is_none")]
676 pub follows_count: std::option::Option<i64>,
677 #[serde(borrow)]
678 pub handle: jacquard_common::types::string::Handle<'a>,
679 #[serde(skip_serializing_if = "std::option::Option::is_none")]
680 pub indexed_at: std::option::Option<jacquard_common::types::string::Datetime>,
681 #[serde(skip_serializing_if = "std::option::Option::is_none")]
682 #[serde(borrow)]
683 pub joined_via_starter_pack: std::option::Option<
684 crate::app_bsky::graph::StarterPackViewBasic<'a>,
685 >,
686 #[serde(skip_serializing_if = "std::option::Option::is_none")]
687 #[serde(borrow)]
688 pub labels: std::option::Option<Vec<crate::com_atproto::label::Label<'a>>>,
689 #[serde(skip_serializing_if = "std::option::Option::is_none")]
690 #[serde(borrow)]
691 pub pinned_post: std::option::Option<
692 crate::com_atproto::repo::strong_ref::StrongRef<'a>,
693 >,
694 #[serde(skip_serializing_if = "std::option::Option::is_none")]
695 pub posts_count: std::option::Option<i64>,
696 #[serde(skip_serializing_if = "std::option::Option::is_none")]
697 #[serde(borrow)]
698 pub pronouns: std::option::Option<jacquard_common::CowStr<'a>>,
699 #[serde(skip_serializing_if = "std::option::Option::is_none")]
700 #[serde(borrow)]
701 pub status: std::option::Option<crate::app_bsky::actor::StatusView<'a>>,
702 #[serde(skip_serializing_if = "std::option::Option::is_none")]
703 #[serde(borrow)]
704 pub verification: std::option::Option<crate::app_bsky::actor::VerificationState<'a>>,
705 #[serde(skip_serializing_if = "std::option::Option::is_none")]
706 #[serde(borrow)]
707 pub viewer: std::option::Option<crate::app_bsky::actor::ViewerState<'a>>,
708 #[serde(skip_serializing_if = "std::option::Option::is_none")]
709 #[serde(borrow)]
710 pub website: std::option::Option<jacquard_common::types::string::Uri<'a>>,
711}
712
713impl jacquard_common::IntoStatic for ProfileViewDetailed<'_> {
714 type Output = ProfileViewDetailed<'static>;
715 fn into_static(self) -> Self::Output {
716 ProfileViewDetailed {
717 associated: self.associated.into_static(),
718 avatar: self.avatar.into_static(),
719 banner: self.banner.into_static(),
720 created_at: self.created_at.into_static(),
721 description: self.description.into_static(),
722 did: self.did.into_static(),
723 display_name: self.display_name.into_static(),
724 followers_count: self.followers_count.into_static(),
725 follows_count: self.follows_count.into_static(),
726 handle: self.handle.into_static(),
727 indexed_at: self.indexed_at.into_static(),
728 joined_via_starter_pack: self.joined_via_starter_pack.into_static(),
729 labels: self.labels.into_static(),
730 pinned_post: self.pinned_post.into_static(),
731 posts_count: self.posts_count.into_static(),
732 pronouns: self.pronouns.into_static(),
733 status: self.status.into_static(),
734 verification: self.verification.into_static(),
735 viewer: self.viewer.into_static(),
736 website: self.website.into_static(),
737 extra_data: self.extra_data.into_static(),
738 }
739 }
740}
741
742#[jacquard_derive::lexicon]
743#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
744#[serde(rename_all = "camelCase")]
745pub struct SavedFeed<'a> {
746 #[serde(borrow)]
747 pub id: jacquard_common::CowStr<'a>,
748 pub pinned: bool,
749 #[serde(borrow)]
750 pub r#type: jacquard_common::CowStr<'a>,
751 #[serde(borrow)]
752 pub value: jacquard_common::CowStr<'a>,
753}
754
755impl jacquard_common::IntoStatic for SavedFeed<'_> {
756 type Output = SavedFeed<'static>;
757 fn into_static(self) -> Self::Output {
758 SavedFeed {
759 id: self.id.into_static(),
760 pinned: self.pinned.into_static(),
761 r#type: self.r#type.into_static(),
762 value: self.value.into_static(),
763 extra_data: self.extra_data.into_static(),
764 }
765 }
766}
767
768#[jacquard_derive::lexicon]
769#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
770#[serde(rename_all = "camelCase")]
771pub struct SavedFeedsPref<'a> {
772 #[serde(borrow)]
773 pub pinned: Vec<jacquard_common::types::string::AtUri<'a>>,
774 #[serde(borrow)]
775 pub saved: Vec<jacquard_common::types::string::AtUri<'a>>,
776 #[serde(skip_serializing_if = "std::option::Option::is_none")]
777 pub timeline_index: std::option::Option<i64>,
778}
779
780impl jacquard_common::IntoStatic for SavedFeedsPref<'_> {
781 type Output = SavedFeedsPref<'static>;
782 fn into_static(self) -> Self::Output {
783 SavedFeedsPref {
784 pinned: self.pinned.into_static(),
785 saved: self.saved.into_static(),
786 timeline_index: self.timeline_index.into_static(),
787 extra_data: self.extra_data.into_static(),
788 }
789 }
790}
791
792#[jacquard_derive::lexicon]
793#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
794#[serde(rename_all = "camelCase")]
795pub struct SavedFeedsPrefV2<'a> {
796 #[serde(borrow)]
797 pub items: Vec<crate::app_bsky::actor::SavedFeed<'a>>,
798}
799
800impl jacquard_common::IntoStatic for SavedFeedsPrefV2<'_> {
801 type Output = SavedFeedsPrefV2<'static>;
802 fn into_static(self) -> Self::Output {
803 SavedFeedsPrefV2 {
804 items: self.items.into_static(),
805 extra_data: self.extra_data.into_static(),
806 }
807 }
808}
809
810#[jacquard_derive::lexicon]
811#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
812#[serde(rename_all = "camelCase")]
813pub struct StatusView<'a> {
814 ///An optional embed associated with the status.
815 #[serde(skip_serializing_if = "std::option::Option::is_none")]
816 #[serde(borrow)]
817 pub embed: std::option::Option<StatusViewRecordEmbed<'a>>,
818 ///The date when this status will expire. The application might choose to no longer return the status after expiration.
819 #[serde(skip_serializing_if = "std::option::Option::is_none")]
820 pub expires_at: std::option::Option<jacquard_common::types::string::Datetime>,
821 ///True if the status is not expired, false if it is expired. Only present if expiration was set.
822 #[serde(skip_serializing_if = "std::option::Option::is_none")]
823 pub is_active: std::option::Option<bool>,
824 #[serde(borrow)]
825 pub record: jacquard_common::types::value::Data<'a>,
826 ///The status for the account.
827 #[serde(borrow)]
828 pub status: jacquard_common::CowStr<'a>,
829}
830
831#[jacquard_derive::open_union]
832#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
833#[serde(tag = "$type")]
834#[serde(bound(deserialize = "'de: 'a"))]
835pub enum StatusViewRecordEmbed<'a> {
836 #[serde(rename = "app.bsky.embed.external#view")]
837 ExternalView(Box<crate::app_bsky::embed::external::View<'a>>),
838}
839
840impl jacquard_common::IntoStatic for StatusViewRecordEmbed<'_> {
841 type Output = StatusViewRecordEmbed<'static>;
842 fn into_static(self) -> Self::Output {
843 match self {
844 StatusViewRecordEmbed::ExternalView(v) => {
845 StatusViewRecordEmbed::ExternalView(v.into_static())
846 }
847 StatusViewRecordEmbed::Unknown(v) => {
848 StatusViewRecordEmbed::Unknown(v.into_static())
849 }
850 }
851 }
852}
853
854impl jacquard_common::IntoStatic for StatusView<'_> {
855 type Output = StatusView<'static>;
856 fn into_static(self) -> Self::Output {
857 StatusView {
858 embed: self.embed.into_static(),
859 expires_at: self.expires_at.into_static(),
860 is_active: self.is_active.into_static(),
861 record: self.record.into_static(),
862 status: self.status.into_static(),
863 extra_data: self.extra_data.into_static(),
864 }
865 }
866}
867
868#[jacquard_derive::lexicon]
869#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
870#[serde(rename_all = "camelCase")]
871pub struct ThreadViewPref<'a> {
872 ///Show followed users at the top of all replies.
873 #[serde(skip_serializing_if = "std::option::Option::is_none")]
874 pub prioritize_followed_users: std::option::Option<bool>,
875 ///Sorting mode for threads.
876 #[serde(skip_serializing_if = "std::option::Option::is_none")]
877 #[serde(borrow)]
878 pub sort: std::option::Option<jacquard_common::CowStr<'a>>,
879}
880
881impl jacquard_common::IntoStatic for ThreadViewPref<'_> {
882 type Output = ThreadViewPref<'static>;
883 fn into_static(self) -> Self::Output {
884 ThreadViewPref {
885 prioritize_followed_users: self.prioritize_followed_users.into_static(),
886 sort: self.sort.into_static(),
887 extra_data: self.extra_data.into_static(),
888 }
889 }
890}
891
892///Preferences for how verified accounts appear in the app.
893#[jacquard_derive::lexicon]
894#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
895#[serde(rename_all = "camelCase")]
896pub struct VerificationPrefs<'a> {
897 ///Hide the blue check badges for verified accounts and trusted verifiers.
898 #[serde(skip_serializing_if = "std::option::Option::is_none")]
899 pub hide_badges: std::option::Option<bool>,
900}
901
902impl jacquard_common::IntoStatic for VerificationPrefs<'_> {
903 type Output = VerificationPrefs<'static>;
904 fn into_static(self) -> Self::Output {
905 VerificationPrefs {
906 hide_badges: self.hide_badges.into_static(),
907 extra_data: self.extra_data.into_static(),
908 }
909 }
910}
911
912///Represents the verification information about the user this object is attached to.
913#[jacquard_derive::lexicon]
914#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
915#[serde(rename_all = "camelCase")]
916pub struct VerificationState<'a> {
917 ///The user's status as a trusted verifier.
918 #[serde(borrow)]
919 pub trusted_verifier_status: jacquard_common::CowStr<'a>,
920 ///All verifications issued by trusted verifiers on behalf of this user. Verifications by untrusted verifiers are not included.
921 #[serde(borrow)]
922 pub verifications: Vec<crate::app_bsky::actor::VerificationView<'a>>,
923 ///The user's status as a verified account.
924 #[serde(borrow)]
925 pub verified_status: jacquard_common::CowStr<'a>,
926}
927
928impl jacquard_common::IntoStatic for VerificationState<'_> {
929 type Output = VerificationState<'static>;
930 fn into_static(self) -> Self::Output {
931 VerificationState {
932 trusted_verifier_status: self.trusted_verifier_status.into_static(),
933 verifications: self.verifications.into_static(),
934 verified_status: self.verified_status.into_static(),
935 extra_data: self.extra_data.into_static(),
936 }
937 }
938}
939
940///An individual verification for an associated subject.
941#[jacquard_derive::lexicon]
942#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
943#[serde(rename_all = "camelCase")]
944pub struct VerificationView<'a> {
945 ///Timestamp when the verification was created.
946 pub created_at: jacquard_common::types::string::Datetime,
947 ///True if the verification passes validation, otherwise false.
948 pub is_valid: bool,
949 ///The user who issued this verification.
950 #[serde(borrow)]
951 pub issuer: jacquard_common::types::string::Did<'a>,
952 ///The AT-URI of the verification record.
953 #[serde(borrow)]
954 pub uri: jacquard_common::types::string::AtUri<'a>,
955}
956
957impl jacquard_common::IntoStatic for VerificationView<'_> {
958 type Output = VerificationView<'static>;
959 fn into_static(self) -> Self::Output {
960 VerificationView {
961 created_at: self.created_at.into_static(),
962 is_valid: self.is_valid.into_static(),
963 issuer: self.issuer.into_static(),
964 uri: self.uri.into_static(),
965 extra_data: self.extra_data.into_static(),
966 }
967 }
968}
969
970///Metadata about the requesting account's relationship with the subject account. Only has meaningful content for authed requests.
971#[jacquard_derive::lexicon]
972#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
973#[serde(rename_all = "camelCase")]
974pub struct ViewerState<'a> {
975 ///This property is present only in selected cases, as an optimization.
976 #[serde(skip_serializing_if = "std::option::Option::is_none")]
977 #[serde(borrow)]
978 pub activity_subscription: std::option::Option<
979 crate::app_bsky::notification::ActivitySubscription<'a>,
980 >,
981 #[serde(skip_serializing_if = "std::option::Option::is_none")]
982 pub blocked_by: std::option::Option<bool>,
983 #[serde(skip_serializing_if = "std::option::Option::is_none")]
984 #[serde(borrow)]
985 pub blocking: std::option::Option<jacquard_common::types::string::AtUri<'a>>,
986 #[serde(skip_serializing_if = "std::option::Option::is_none")]
987 #[serde(borrow)]
988 pub blocking_by_list: std::option::Option<crate::app_bsky::graph::ListViewBasic<'a>>,
989 #[serde(skip_serializing_if = "std::option::Option::is_none")]
990 #[serde(borrow)]
991 pub followed_by: std::option::Option<jacquard_common::types::string::AtUri<'a>>,
992 #[serde(skip_serializing_if = "std::option::Option::is_none")]
993 #[serde(borrow)]
994 pub following: std::option::Option<jacquard_common::types::string::AtUri<'a>>,
995 ///This property is present only in selected cases, as an optimization.
996 #[serde(skip_serializing_if = "std::option::Option::is_none")]
997 #[serde(borrow)]
998 pub known_followers: std::option::Option<crate::app_bsky::actor::KnownFollowers<'a>>,
999 #[serde(skip_serializing_if = "std::option::Option::is_none")]
1000 pub muted: std::option::Option<bool>,
1001 #[serde(skip_serializing_if = "std::option::Option::is_none")]
1002 #[serde(borrow)]
1003 pub muted_by_list: std::option::Option<crate::app_bsky::graph::ListViewBasic<'a>>,
1004}
1005
1006impl jacquard_common::IntoStatic for ViewerState<'_> {
1007 type Output = ViewerState<'static>;
1008 fn into_static(self) -> Self::Output {
1009 ViewerState {
1010 activity_subscription: self.activity_subscription.into_static(),
1011 blocked_by: self.blocked_by.into_static(),
1012 blocking: self.blocking.into_static(),
1013 blocking_by_list: self.blocking_by_list.into_static(),
1014 followed_by: self.followed_by.into_static(),
1015 following: self.following.into_static(),
1016 known_followers: self.known_followers.into_static(),
1017 muted: self.muted.into_static(),
1018 muted_by_list: self.muted_by_list.into_static(),
1019 extra_data: self.extra_data.into_static(),
1020 }
1021 }
1022}