1pub 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
19#[allow(unused_imports)]
20use alloc::collections::BTreeMap;
21
22#[allow(unused_imports)]
23use core::marker::PhantomData;
24use jacquard_common::CowStr;
25
26#[allow(unused_imports)]
27use jacquard_common::deps::codegen::unicode_segmentation::UnicodeSegmentation;
28use jacquard_common::types::string::{Did, Handle, AtUri, Cid, Datetime, UriValue};
29use jacquard_common::types::value::Data;
30use jacquard_derive::{IntoStatic, lexicon, open_union};
31use jacquard_lexicon::lexicon::LexiconDoc;
32use jacquard_lexicon::schema::LexiconSchema;
33
34#[allow(unused_imports)]
35use jacquard_lexicon::validation::{ConstraintError, ValidationPath};
36use serde::{Serialize, Deserialize};
37use crate::app_bsky::embed::external::View;
38use crate::app_bsky::feed::postgate::DisableRule;
39use crate::app_bsky::feed::threadgate::FollowerRule;
40use crate::app_bsky::feed::threadgate::FollowingRule;
41use crate::app_bsky::feed::threadgate::ListRule;
42use crate::app_bsky::feed::threadgate::MentionRule;
43use crate::app_bsky::graph::ListViewBasic;
44use crate::app_bsky::graph::StarterPackViewBasic;
45use crate::app_bsky::notification::ActivitySubscription;
46use crate::com_atproto::label::Label;
47use crate::com_atproto::repo::strong_ref::StrongRef;
48use crate::app_bsky::actor;
49
50#[lexicon]
51#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic)]
52#[serde(rename_all = "camelCase")]
53pub struct AdultContentPref<'a> {
54 #[serde(default = "_default_adult_content_pref_enabled")]
56 pub enabled: bool,
57}
58
59#[lexicon]
62#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic, Default)]
63#[serde(rename_all = "camelCase")]
64pub struct BskyAppProgressGuide<'a> {
65 #[serde(borrow)]
66 pub guide: CowStr<'a>,
67}
68
69#[lexicon]
72#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic, Default)]
73#[serde(rename_all = "camelCase")]
74pub struct BskyAppStatePref<'a> {
75 #[serde(skip_serializing_if = "Option::is_none")]
76 #[serde(borrow)]
77 pub active_progress_guide: Option<actor::BskyAppProgressGuide<'a>>,
78 #[serde(skip_serializing_if = "Option::is_none")]
80 #[serde(borrow)]
81 pub nuxs: Option<Vec<actor::Nux<'a>>>,
82 #[serde(skip_serializing_if = "Option::is_none")]
84 #[serde(borrow)]
85 pub queued_nudges: Option<Vec<CowStr<'a>>>,
86}
87
88
89#[lexicon]
90#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic, Default)]
91#[serde(rename_all = "camelCase")]
92pub struct ContentLabelPref<'a> {
93 #[serde(borrow)]
94 pub label: CowStr<'a>,
95 #[serde(skip_serializing_if = "Option::is_none")]
97 #[serde(borrow)]
98 pub labeler_did: Option<Did<'a>>,
99 #[serde(borrow)]
100 pub visibility: ContentLabelPrefVisibility<'a>,
101}
102
103
104#[derive(Debug, Clone, PartialEq, Eq, Hash)]
105pub enum ContentLabelPrefVisibility<'a> {
106 Ignore,
107 Show,
108 Warn,
109 Hide,
110 Other(CowStr<'a>),
111}
112
113impl<'a> ContentLabelPrefVisibility<'a> {
114 pub fn as_str(&self) -> &str {
115 match self {
116 Self::Ignore => "ignore",
117 Self::Show => "show",
118 Self::Warn => "warn",
119 Self::Hide => "hide",
120 Self::Other(s) => s.as_ref(),
121 }
122 }
123}
124
125impl<'a> From<&'a str> for ContentLabelPrefVisibility<'a> {
126 fn from(s: &'a str) -> Self {
127 match s {
128 "ignore" => Self::Ignore,
129 "show" => Self::Show,
130 "warn" => Self::Warn,
131 "hide" => Self::Hide,
132 _ => Self::Other(CowStr::from(s)),
133 }
134 }
135}
136
137impl<'a> From<String> for ContentLabelPrefVisibility<'a> {
138 fn from(s: String) -> Self {
139 match s.as_str() {
140 "ignore" => Self::Ignore,
141 "show" => Self::Show,
142 "warn" => Self::Warn,
143 "hide" => Self::Hide,
144 _ => Self::Other(CowStr::from(s)),
145 }
146 }
147}
148
149impl<'a> core::fmt::Display for ContentLabelPrefVisibility<'a> {
150 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
151 write!(f, "{}", self.as_str())
152 }
153}
154
155impl<'a> AsRef<str> for ContentLabelPrefVisibility<'a> {
156 fn as_ref(&self) -> &str {
157 self.as_str()
158 }
159}
160
161impl<'a> serde::Serialize for ContentLabelPrefVisibility<'a> {
162 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
163 where
164 S: serde::Serializer,
165 {
166 serializer.serialize_str(self.as_str())
167 }
168}
169
170impl<'de, 'a> serde::Deserialize<'de> for ContentLabelPrefVisibility<'a>
171where
172 'de: 'a,
173{
174 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
175 where
176 D: serde::Deserializer<'de>,
177 {
178 let s = <&'de str>::deserialize(deserializer)?;
179 Ok(Self::from(s))
180 }
181}
182
183impl<'a> Default for ContentLabelPrefVisibility<'a> {
184 fn default() -> Self {
185 Self::Other(Default::default())
186 }
187}
188
189impl jacquard_common::IntoStatic for ContentLabelPrefVisibility<'_> {
190 type Output = ContentLabelPrefVisibility<'static>;
191 fn into_static(self) -> Self::Output {
192 match self {
193 ContentLabelPrefVisibility::Ignore => ContentLabelPrefVisibility::Ignore,
194 ContentLabelPrefVisibility::Show => ContentLabelPrefVisibility::Show,
195 ContentLabelPrefVisibility::Warn => ContentLabelPrefVisibility::Warn,
196 ContentLabelPrefVisibility::Hide => ContentLabelPrefVisibility::Hide,
197 ContentLabelPrefVisibility::Other(v) => {
198 ContentLabelPrefVisibility::Other(v.into_static())
199 }
200 }
201 }
202}
203
204#[lexicon]
207#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic, Default)]
208#[serde(rename_all = "camelCase")]
209pub struct DeclaredAgePref<'a> {
210 #[serde(skip_serializing_if = "Option::is_none")]
212 pub is_over_age13: Option<bool>,
213 #[serde(skip_serializing_if = "Option::is_none")]
215 pub is_over_age16: Option<bool>,
216 #[serde(skip_serializing_if = "Option::is_none")]
218 pub is_over_age18: Option<bool>,
219}
220
221
222#[lexicon]
223#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic, Default)]
224#[serde(rename_all = "camelCase")]
225pub struct FeedViewPref<'a> {
226 #[serde(borrow)]
228 pub feed: CowStr<'a>,
229 #[serde(skip_serializing_if = "Option::is_none")]
231 pub hide_quote_posts: Option<bool>,
232 #[serde(skip_serializing_if = "Option::is_none")]
234 pub hide_replies: Option<bool>,
235 #[serde(skip_serializing_if = "Option::is_none")]
237 pub hide_replies_by_like_count: Option<i64>,
238 #[serde(skip_serializing_if = "Option::is_none")]
240 #[serde(default = "_default_feed_view_pref_hide_replies_by_unfollowed")]
241 pub hide_replies_by_unfollowed: Option<bool>,
242 #[serde(skip_serializing_if = "Option::is_none")]
244 pub hide_reposts: Option<bool>,
245}
246
247
248#[lexicon]
249#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic)]
250#[serde(rename_all = "camelCase")]
251pub struct HiddenPostsPref<'a> {
252 #[serde(borrow)]
254 pub items: Vec<AtUri<'a>>,
255}
256
257
258#[lexicon]
259#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic)]
260#[serde(rename_all = "camelCase")]
261pub struct InterestsPref<'a> {
262 #[serde(borrow)]
264 pub tags: Vec<CowStr<'a>>,
265}
266
267#[lexicon]
270#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic)]
271#[serde(rename_all = "camelCase")]
272pub struct KnownFollowers<'a> {
273 pub count: i64,
274 #[serde(borrow)]
275 pub followers: Vec<actor::ProfileViewBasic<'a>>,
276}
277
278
279#[lexicon]
280#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic)]
281#[serde(rename_all = "camelCase")]
282pub struct LabelerPrefItem<'a> {
283 #[serde(borrow)]
284 pub did: Did<'a>,
285}
286
287
288#[lexicon]
289#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic)]
290#[serde(rename_all = "camelCase")]
291pub struct LabelersPref<'a> {
292 #[serde(borrow)]
293 pub labelers: Vec<actor::LabelerPrefItem<'a>>,
294}
295
296#[lexicon]
299#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic)]
300#[serde(rename_all = "camelCase")]
301pub struct LiveEventPreferences<'a> {
302 #[serde(skip_serializing_if = "Option::is_none")]
304 #[serde(borrow)]
305 pub hidden_feed_ids: Option<Vec<CowStr<'a>>>,
306 #[serde(skip_serializing_if = "Option::is_none")]
308 #[serde(default = "_default_live_event_preferences_hide_all_feeds")]
309 pub hide_all_feeds: Option<bool>,
310}
311
312#[lexicon]
315#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic)]
316#[serde(rename_all = "camelCase")]
317pub struct MutedWord<'a> {
318 #[serde(skip_serializing_if = "Option::is_none")]
320 #[serde(borrow)]
321 pub actor_target: Option<MutedWordActorTarget<'a>>,
322 #[serde(skip_serializing_if = "Option::is_none")]
324 pub expires_at: Option<Datetime>,
325 #[serde(skip_serializing_if = "Option::is_none")]
326 #[serde(borrow)]
327 pub id: Option<CowStr<'a>>,
328 #[serde(borrow)]
330 pub targets: Vec<actor::MutedWordTarget<'a>>,
331 #[serde(borrow)]
333 pub value: CowStr<'a>,
334}
335
336#[derive(Debug, Clone, PartialEq, Eq, Hash)]
339pub enum MutedWordActorTarget<'a> {
340 All,
341 ExcludeFollowing,
342 Other(CowStr<'a>),
343}
344
345impl<'a> MutedWordActorTarget<'a> {
346 pub fn as_str(&self) -> &str {
347 match self {
348 Self::All => "all",
349 Self::ExcludeFollowing => "exclude-following",
350 Self::Other(s) => s.as_ref(),
351 }
352 }
353}
354
355impl<'a> From<&'a str> for MutedWordActorTarget<'a> {
356 fn from(s: &'a str) -> Self {
357 match s {
358 "all" => Self::All,
359 "exclude-following" => Self::ExcludeFollowing,
360 _ => Self::Other(CowStr::from(s)),
361 }
362 }
363}
364
365impl<'a> From<String> for MutedWordActorTarget<'a> {
366 fn from(s: String) -> Self {
367 match s.as_str() {
368 "all" => Self::All,
369 "exclude-following" => Self::ExcludeFollowing,
370 _ => Self::Other(CowStr::from(s)),
371 }
372 }
373}
374
375impl<'a> core::fmt::Display for MutedWordActorTarget<'a> {
376 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
377 write!(f, "{}", self.as_str())
378 }
379}
380
381impl<'a> AsRef<str> for MutedWordActorTarget<'a> {
382 fn as_ref(&self) -> &str {
383 self.as_str()
384 }
385}
386
387impl<'a> serde::Serialize for MutedWordActorTarget<'a> {
388 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
389 where
390 S: serde::Serializer,
391 {
392 serializer.serialize_str(self.as_str())
393 }
394}
395
396impl<'de, 'a> serde::Deserialize<'de> for MutedWordActorTarget<'a>
397where
398 'de: 'a,
399{
400 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
401 where
402 D: serde::Deserializer<'de>,
403 {
404 let s = <&'de str>::deserialize(deserializer)?;
405 Ok(Self::from(s))
406 }
407}
408
409impl<'a> Default for MutedWordActorTarget<'a> {
410 fn default() -> Self {
411 Self::Other(Default::default())
412 }
413}
414
415impl jacquard_common::IntoStatic for MutedWordActorTarget<'_> {
416 type Output = MutedWordActorTarget<'static>;
417 fn into_static(self) -> Self::Output {
418 match self {
419 MutedWordActorTarget::All => MutedWordActorTarget::All,
420 MutedWordActorTarget::ExcludeFollowing => {
421 MutedWordActorTarget::ExcludeFollowing
422 }
423 MutedWordActorTarget::Other(v) => {
424 MutedWordActorTarget::Other(v.into_static())
425 }
426 }
427 }
428}
429
430
431#[derive(Debug, Clone, PartialEq, Eq, Hash)]
432pub enum MutedWordTarget<'a> {
433 Content,
434 Tag,
435 Other(CowStr<'a>),
436}
437
438impl<'a> MutedWordTarget<'a> {
439 pub fn as_str(&self) -> &str {
440 match self {
441 Self::Content => "content",
442 Self::Tag => "tag",
443 Self::Other(s) => s.as_ref(),
444 }
445 }
446}
447
448impl<'a> From<&'a str> for MutedWordTarget<'a> {
449 fn from(s: &'a str) -> Self {
450 match s {
451 "content" => Self::Content,
452 "tag" => Self::Tag,
453 _ => Self::Other(CowStr::from(s)),
454 }
455 }
456}
457
458impl<'a> From<String> for MutedWordTarget<'a> {
459 fn from(s: String) -> Self {
460 match s.as_str() {
461 "content" => Self::Content,
462 "tag" => Self::Tag,
463 _ => Self::Other(CowStr::from(s)),
464 }
465 }
466}
467
468impl<'a> AsRef<str> for MutedWordTarget<'a> {
469 fn as_ref(&self) -> &str {
470 self.as_str()
471 }
472}
473
474impl<'a> core::fmt::Display for MutedWordTarget<'a> {
475 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
476 write!(f, "{}", self.as_str())
477 }
478}
479
480impl<'a> serde::Serialize for MutedWordTarget<'a> {
481 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
482 where
483 S: serde::Serializer,
484 {
485 serializer.serialize_str(self.as_str())
486 }
487}
488
489impl<'de, 'a> serde::Deserialize<'de> for MutedWordTarget<'a>
490where
491 'de: 'a,
492{
493 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
494 where
495 D: serde::Deserializer<'de>,
496 {
497 let s = <&'de str>::deserialize(deserializer)?;
498 Ok(Self::from(s))
499 }
500}
501
502impl jacquard_common::IntoStatic for MutedWordTarget<'_> {
503 type Output = MutedWordTarget<'static>;
504 fn into_static(self) -> Self::Output {
505 match self {
506 MutedWordTarget::Content => MutedWordTarget::Content,
507 MutedWordTarget::Tag => MutedWordTarget::Tag,
508 MutedWordTarget::Other(v) => MutedWordTarget::Other(v.into_static()),
509 }
510 }
511}
512
513
514#[lexicon]
515#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic)]
516#[serde(rename_all = "camelCase")]
517pub struct MutedWordsPref<'a> {
518 #[serde(borrow)]
520 pub items: Vec<actor::MutedWord<'a>>,
521}
522
523#[lexicon]
526#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic)]
527#[serde(rename_all = "camelCase")]
528pub struct Nux<'a> {
529 #[serde(default = "_default_nux_completed")]
531 pub completed: bool,
532 #[serde(skip_serializing_if = "Option::is_none")]
534 #[serde(borrow)]
535 pub data: Option<CowStr<'a>>,
536 #[serde(skip_serializing_if = "Option::is_none")]
538 pub expires_at: Option<Datetime>,
539 #[serde(borrow)]
540 pub id: CowStr<'a>,
541}
542
543
544#[lexicon]
545#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic, Default)]
546#[serde(rename_all = "camelCase")]
547pub struct PersonalDetailsPref<'a> {
548 #[serde(skip_serializing_if = "Option::is_none")]
550 pub birth_date: Option<Datetime>,
551}
552
553#[lexicon]
556#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic, Default)]
557#[serde(rename_all = "camelCase")]
558pub struct PostInteractionSettingsPref<'a> {
559 #[serde(skip_serializing_if = "Option::is_none")]
561 #[serde(borrow)]
562 pub postgate_embedding_rules: Option<Vec<DisableRule<'a>>>,
563 #[serde(skip_serializing_if = "Option::is_none")]
565 #[serde(borrow)]
566 pub threadgate_allow_rules: Option<
567 Vec<PostInteractionSettingsPrefThreadgateAllowRulesItem<'a>>,
568 >,
569}
570
571
572#[open_union]
573#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic)]
574#[serde(tag = "$type", bound(deserialize = "'de: 'a"))]
575pub enum PostInteractionSettingsPrefThreadgateAllowRulesItem<'a> {
576 #[serde(rename = "app.bsky.feed.threadgate#mentionRule")]
577 ThreadgateMentionRule(Box<MentionRule<'a>>),
578 #[serde(rename = "app.bsky.feed.threadgate#followerRule")]
579 ThreadgateFollowerRule(Box<FollowerRule<'a>>),
580 #[serde(rename = "app.bsky.feed.threadgate#followingRule")]
581 ThreadgateFollowingRule(Box<FollowingRule<'a>>),
582 #[serde(rename = "app.bsky.feed.threadgate#listRule")]
583 ThreadgateListRule(Box<ListRule<'a>>),
584}
585
586
587#[open_union]
588#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic)]
589#[serde(tag = "$type", bound(deserialize = "'de: 'a"))]
590pub enum PreferencesItem<'a> {
591 #[serde(rename = "app.bsky.actor.defs#adultContentPref")]
592 AdultContentPref(Box<actor::AdultContentPref<'a>>),
593 #[serde(rename = "app.bsky.actor.defs#contentLabelPref")]
594 ContentLabelPref(Box<actor::ContentLabelPref<'a>>),
595 #[serde(rename = "app.bsky.actor.defs#savedFeedsPref")]
596 SavedFeedsPref(Box<actor::SavedFeedsPref<'a>>),
597 #[serde(rename = "app.bsky.actor.defs#savedFeedsPrefV2")]
598 SavedFeedsPrefV2(Box<actor::SavedFeedsPrefV2<'a>>),
599 #[serde(rename = "app.bsky.actor.defs#personalDetailsPref")]
600 PersonalDetailsPref(Box<actor::PersonalDetailsPref<'a>>),
601 #[serde(rename = "app.bsky.actor.defs#declaredAgePref")]
602 DeclaredAgePref(Box<actor::DeclaredAgePref<'a>>),
603 #[serde(rename = "app.bsky.actor.defs#feedViewPref")]
604 FeedViewPref(Box<actor::FeedViewPref<'a>>),
605 #[serde(rename = "app.bsky.actor.defs#threadViewPref")]
606 ThreadViewPref(Box<actor::ThreadViewPref<'a>>),
607 #[serde(rename = "app.bsky.actor.defs#interestsPref")]
608 InterestsPref(Box<actor::InterestsPref<'a>>),
609 #[serde(rename = "app.bsky.actor.defs#mutedWordsPref")]
610 MutedWordsPref(Box<actor::MutedWordsPref<'a>>),
611 #[serde(rename = "app.bsky.actor.defs#hiddenPostsPref")]
612 HiddenPostsPref(Box<actor::HiddenPostsPref<'a>>),
613 #[serde(rename = "app.bsky.actor.defs#bskyAppStatePref")]
614 BskyAppStatePref(Box<actor::BskyAppStatePref<'a>>),
615 #[serde(rename = "app.bsky.actor.defs#labelersPref")]
616 LabelersPref(Box<actor::LabelersPref<'a>>),
617 #[serde(rename = "app.bsky.actor.defs#postInteractionSettingsPref")]
618 PostInteractionSettingsPref(Box<actor::PostInteractionSettingsPref<'a>>),
619 #[serde(rename = "app.bsky.actor.defs#verificationPrefs")]
620 VerificationPrefs(Box<actor::VerificationPrefs<'a>>),
621 #[serde(rename = "app.bsky.actor.defs#liveEventPreferences")]
622 LiveEventPreferences(Box<actor::LiveEventPreferences<'a>>),
623}
624
625pub type Preferences<'a> = Vec<PreferencesItem<'a>>;
626
627#[lexicon]
628#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic, Default)]
629#[serde(rename_all = "camelCase")]
630pub struct ProfileAssociated<'a> {
631 #[serde(skip_serializing_if = "Option::is_none")]
632 #[serde(borrow)]
633 pub activity_subscription: Option<actor::ProfileAssociatedActivitySubscription<'a>>,
634 #[serde(skip_serializing_if = "Option::is_none")]
635 #[serde(borrow)]
636 pub chat: Option<actor::ProfileAssociatedChat<'a>>,
637 #[serde(skip_serializing_if = "Option::is_none")]
638 pub feedgens: Option<i64>,
639 #[serde(skip_serializing_if = "Option::is_none")]
640 #[serde(borrow)]
641 pub germ: Option<actor::ProfileAssociatedGerm<'a>>,
642 #[serde(skip_serializing_if = "Option::is_none")]
643 pub labeler: Option<bool>,
644 #[serde(skip_serializing_if = "Option::is_none")]
645 pub lists: Option<i64>,
646 #[serde(skip_serializing_if = "Option::is_none")]
647 pub starter_packs: Option<i64>,
648}
649
650
651#[lexicon]
652#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic, Default)]
653#[serde(rename_all = "camelCase")]
654pub struct ProfileAssociatedActivitySubscription<'a> {
655 #[serde(borrow)]
656 pub allow_subscriptions: ProfileAssociatedActivitySubscriptionAllowSubscriptions<'a>,
657}
658
659
660#[derive(Debug, Clone, PartialEq, Eq, Hash)]
661pub enum ProfileAssociatedActivitySubscriptionAllowSubscriptions<'a> {
662 Followers,
663 Mutuals,
664 None,
665 Other(CowStr<'a>),
666}
667
668impl<'a> ProfileAssociatedActivitySubscriptionAllowSubscriptions<'a> {
669 pub fn as_str(&self) -> &str {
670 match self {
671 Self::Followers => "followers",
672 Self::Mutuals => "mutuals",
673 Self::None => "none",
674 Self::Other(s) => s.as_ref(),
675 }
676 }
677}
678
679impl<'a> From<&'a str> for ProfileAssociatedActivitySubscriptionAllowSubscriptions<'a> {
680 fn from(s: &'a str) -> Self {
681 match s {
682 "followers" => Self::Followers,
683 "mutuals" => Self::Mutuals,
684 "none" => Self::None,
685 _ => Self::Other(CowStr::from(s)),
686 }
687 }
688}
689
690impl<'a> From<String> for ProfileAssociatedActivitySubscriptionAllowSubscriptions<'a> {
691 fn from(s: String) -> Self {
692 match s.as_str() {
693 "followers" => Self::Followers,
694 "mutuals" => Self::Mutuals,
695 "none" => Self::None,
696 _ => Self::Other(CowStr::from(s)),
697 }
698 }
699}
700
701impl<'a> core::fmt::Display
702for ProfileAssociatedActivitySubscriptionAllowSubscriptions<'a> {
703 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
704 write!(f, "{}", self.as_str())
705 }
706}
707
708impl<'a> AsRef<str> for ProfileAssociatedActivitySubscriptionAllowSubscriptions<'a> {
709 fn as_ref(&self) -> &str {
710 self.as_str()
711 }
712}
713
714impl<'a> serde::Serialize
715for ProfileAssociatedActivitySubscriptionAllowSubscriptions<'a> {
716 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
717 where
718 S: serde::Serializer,
719 {
720 serializer.serialize_str(self.as_str())
721 }
722}
723
724impl<'de, 'a> serde::Deserialize<'de>
725for ProfileAssociatedActivitySubscriptionAllowSubscriptions<'a>
726where
727 'de: 'a,
728{
729 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
730 where
731 D: serde::Deserializer<'de>,
732 {
733 let s = <&'de str>::deserialize(deserializer)?;
734 Ok(Self::from(s))
735 }
736}
737
738impl<'a> Default for ProfileAssociatedActivitySubscriptionAllowSubscriptions<'a> {
739 fn default() -> Self {
740 Self::Other(Default::default())
741 }
742}
743
744impl jacquard_common::IntoStatic
745for ProfileAssociatedActivitySubscriptionAllowSubscriptions<'_> {
746 type Output = ProfileAssociatedActivitySubscriptionAllowSubscriptions<'static>;
747 fn into_static(self) -> Self::Output {
748 match self {
749 ProfileAssociatedActivitySubscriptionAllowSubscriptions::Followers => {
750 ProfileAssociatedActivitySubscriptionAllowSubscriptions::Followers
751 }
752 ProfileAssociatedActivitySubscriptionAllowSubscriptions::Mutuals => {
753 ProfileAssociatedActivitySubscriptionAllowSubscriptions::Mutuals
754 }
755 ProfileAssociatedActivitySubscriptionAllowSubscriptions::None => {
756 ProfileAssociatedActivitySubscriptionAllowSubscriptions::None
757 }
758 ProfileAssociatedActivitySubscriptionAllowSubscriptions::Other(v) => {
759 ProfileAssociatedActivitySubscriptionAllowSubscriptions::Other(
760 v.into_static(),
761 )
762 }
763 }
764 }
765}
766
767
768#[lexicon]
769#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic, Default)]
770#[serde(rename_all = "camelCase")]
771pub struct ProfileAssociatedChat<'a> {
772 #[serde(borrow)]
773 pub allow_incoming: ProfileAssociatedChatAllowIncoming<'a>,
774}
775
776
777#[derive(Debug, Clone, PartialEq, Eq, Hash)]
778pub enum ProfileAssociatedChatAllowIncoming<'a> {
779 All,
780 None,
781 Following,
782 Other(CowStr<'a>),
783}
784
785impl<'a> ProfileAssociatedChatAllowIncoming<'a> {
786 pub fn as_str(&self) -> &str {
787 match self {
788 Self::All => "all",
789 Self::None => "none",
790 Self::Following => "following",
791 Self::Other(s) => s.as_ref(),
792 }
793 }
794}
795
796impl<'a> From<&'a str> for ProfileAssociatedChatAllowIncoming<'a> {
797 fn from(s: &'a str) -> Self {
798 match s {
799 "all" => Self::All,
800 "none" => Self::None,
801 "following" => Self::Following,
802 _ => Self::Other(CowStr::from(s)),
803 }
804 }
805}
806
807impl<'a> From<String> for ProfileAssociatedChatAllowIncoming<'a> {
808 fn from(s: String) -> Self {
809 match s.as_str() {
810 "all" => Self::All,
811 "none" => Self::None,
812 "following" => Self::Following,
813 _ => Self::Other(CowStr::from(s)),
814 }
815 }
816}
817
818impl<'a> core::fmt::Display for ProfileAssociatedChatAllowIncoming<'a> {
819 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
820 write!(f, "{}", self.as_str())
821 }
822}
823
824impl<'a> AsRef<str> for ProfileAssociatedChatAllowIncoming<'a> {
825 fn as_ref(&self) -> &str {
826 self.as_str()
827 }
828}
829
830impl<'a> serde::Serialize for ProfileAssociatedChatAllowIncoming<'a> {
831 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
832 where
833 S: serde::Serializer,
834 {
835 serializer.serialize_str(self.as_str())
836 }
837}
838
839impl<'de, 'a> serde::Deserialize<'de> for ProfileAssociatedChatAllowIncoming<'a>
840where
841 'de: 'a,
842{
843 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
844 where
845 D: serde::Deserializer<'de>,
846 {
847 let s = <&'de str>::deserialize(deserializer)?;
848 Ok(Self::from(s))
849 }
850}
851
852impl<'a> Default for ProfileAssociatedChatAllowIncoming<'a> {
853 fn default() -> Self {
854 Self::Other(Default::default())
855 }
856}
857
858impl jacquard_common::IntoStatic for ProfileAssociatedChatAllowIncoming<'_> {
859 type Output = ProfileAssociatedChatAllowIncoming<'static>;
860 fn into_static(self) -> Self::Output {
861 match self {
862 ProfileAssociatedChatAllowIncoming::All => {
863 ProfileAssociatedChatAllowIncoming::All
864 }
865 ProfileAssociatedChatAllowIncoming::None => {
866 ProfileAssociatedChatAllowIncoming::None
867 }
868 ProfileAssociatedChatAllowIncoming::Following => {
869 ProfileAssociatedChatAllowIncoming::Following
870 }
871 ProfileAssociatedChatAllowIncoming::Other(v) => {
872 ProfileAssociatedChatAllowIncoming::Other(v.into_static())
873 }
874 }
875 }
876}
877
878
879#[lexicon]
880#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic)]
881#[serde(rename_all = "camelCase")]
882pub struct ProfileAssociatedGerm<'a> {
883 #[serde(borrow)]
884 pub message_me_url: UriValue<'a>,
885 #[serde(borrow)]
886 pub show_button_to: ProfileAssociatedGermShowButtonTo<'a>,
887}
888
889
890#[derive(Debug, Clone, PartialEq, Eq, Hash)]
891pub enum ProfileAssociatedGermShowButtonTo<'a> {
892 UsersIFollow,
893 Everyone,
894 Other(CowStr<'a>),
895}
896
897impl<'a> ProfileAssociatedGermShowButtonTo<'a> {
898 pub fn as_str(&self) -> &str {
899 match self {
900 Self::UsersIFollow => "usersIFollow",
901 Self::Everyone => "everyone",
902 Self::Other(s) => s.as_ref(),
903 }
904 }
905}
906
907impl<'a> From<&'a str> for ProfileAssociatedGermShowButtonTo<'a> {
908 fn from(s: &'a str) -> Self {
909 match s {
910 "usersIFollow" => Self::UsersIFollow,
911 "everyone" => Self::Everyone,
912 _ => Self::Other(CowStr::from(s)),
913 }
914 }
915}
916
917impl<'a> From<String> for ProfileAssociatedGermShowButtonTo<'a> {
918 fn from(s: String) -> Self {
919 match s.as_str() {
920 "usersIFollow" => Self::UsersIFollow,
921 "everyone" => Self::Everyone,
922 _ => Self::Other(CowStr::from(s)),
923 }
924 }
925}
926
927impl<'a> core::fmt::Display for ProfileAssociatedGermShowButtonTo<'a> {
928 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
929 write!(f, "{}", self.as_str())
930 }
931}
932
933impl<'a> AsRef<str> for ProfileAssociatedGermShowButtonTo<'a> {
934 fn as_ref(&self) -> &str {
935 self.as_str()
936 }
937}
938
939impl<'a> serde::Serialize for ProfileAssociatedGermShowButtonTo<'a> {
940 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
941 where
942 S: serde::Serializer,
943 {
944 serializer.serialize_str(self.as_str())
945 }
946}
947
948impl<'de, 'a> serde::Deserialize<'de> for ProfileAssociatedGermShowButtonTo<'a>
949where
950 'de: 'a,
951{
952 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
953 where
954 D: serde::Deserializer<'de>,
955 {
956 let s = <&'de str>::deserialize(deserializer)?;
957 Ok(Self::from(s))
958 }
959}
960
961impl<'a> Default for ProfileAssociatedGermShowButtonTo<'a> {
962 fn default() -> Self {
963 Self::Other(Default::default())
964 }
965}
966
967impl jacquard_common::IntoStatic for ProfileAssociatedGermShowButtonTo<'_> {
968 type Output = ProfileAssociatedGermShowButtonTo<'static>;
969 fn into_static(self) -> Self::Output {
970 match self {
971 ProfileAssociatedGermShowButtonTo::UsersIFollow => {
972 ProfileAssociatedGermShowButtonTo::UsersIFollow
973 }
974 ProfileAssociatedGermShowButtonTo::Everyone => {
975 ProfileAssociatedGermShowButtonTo::Everyone
976 }
977 ProfileAssociatedGermShowButtonTo::Other(v) => {
978 ProfileAssociatedGermShowButtonTo::Other(v.into_static())
979 }
980 }
981 }
982}
983
984
985#[lexicon]
986#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic)]
987#[serde(rename_all = "camelCase")]
988pub struct ProfileView<'a> {
989 #[serde(skip_serializing_if = "Option::is_none")]
990 #[serde(borrow)]
991 pub associated: Option<actor::ProfileAssociated<'a>>,
992 #[serde(skip_serializing_if = "Option::is_none")]
993 #[serde(borrow)]
994 pub avatar: Option<UriValue<'a>>,
995 #[serde(skip_serializing_if = "Option::is_none")]
996 pub created_at: Option<Datetime>,
997 #[serde(skip_serializing_if = "Option::is_none")]
999 #[serde(borrow)]
1000 pub debug: Option<Data<'a>>,
1001 #[serde(skip_serializing_if = "Option::is_none")]
1002 #[serde(borrow)]
1003 pub description: Option<CowStr<'a>>,
1004 #[serde(borrow)]
1005 pub did: Did<'a>,
1006 #[serde(skip_serializing_if = "Option::is_none")]
1007 #[serde(borrow)]
1008 pub display_name: Option<CowStr<'a>>,
1009 #[serde(borrow)]
1010 pub handle: Handle<'a>,
1011 #[serde(skip_serializing_if = "Option::is_none")]
1012 pub indexed_at: Option<Datetime>,
1013 #[serde(skip_serializing_if = "Option::is_none")]
1014 #[serde(borrow)]
1015 pub labels: Option<Vec<Label<'a>>>,
1016 #[serde(skip_serializing_if = "Option::is_none")]
1017 #[serde(borrow)]
1018 pub pronouns: Option<CowStr<'a>>,
1019 #[serde(skip_serializing_if = "Option::is_none")]
1020 #[serde(borrow)]
1021 pub status: Option<actor::StatusView<'a>>,
1022 #[serde(skip_serializing_if = "Option::is_none")]
1023 #[serde(borrow)]
1024 pub verification: Option<actor::VerificationState<'a>>,
1025 #[serde(skip_serializing_if = "Option::is_none")]
1026 #[serde(borrow)]
1027 pub viewer: Option<actor::ViewerState<'a>>,
1028}
1029
1030
1031#[lexicon]
1032#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic)]
1033#[serde(rename_all = "camelCase")]
1034pub struct ProfileViewBasic<'a> {
1035 #[serde(skip_serializing_if = "Option::is_none")]
1036 #[serde(borrow)]
1037 pub associated: Option<actor::ProfileAssociated<'a>>,
1038 #[serde(skip_serializing_if = "Option::is_none")]
1039 #[serde(borrow)]
1040 pub avatar: Option<UriValue<'a>>,
1041 #[serde(skip_serializing_if = "Option::is_none")]
1042 pub created_at: Option<Datetime>,
1043 #[serde(skip_serializing_if = "Option::is_none")]
1045 #[serde(borrow)]
1046 pub debug: Option<Data<'a>>,
1047 #[serde(borrow)]
1048 pub did: Did<'a>,
1049 #[serde(skip_serializing_if = "Option::is_none")]
1050 #[serde(borrow)]
1051 pub display_name: Option<CowStr<'a>>,
1052 #[serde(borrow)]
1053 pub handle: Handle<'a>,
1054 #[serde(skip_serializing_if = "Option::is_none")]
1055 #[serde(borrow)]
1056 pub labels: Option<Vec<Label<'a>>>,
1057 #[serde(skip_serializing_if = "Option::is_none")]
1058 #[serde(borrow)]
1059 pub pronouns: Option<CowStr<'a>>,
1060 #[serde(skip_serializing_if = "Option::is_none")]
1061 #[serde(borrow)]
1062 pub status: Option<actor::StatusView<'a>>,
1063 #[serde(skip_serializing_if = "Option::is_none")]
1064 #[serde(borrow)]
1065 pub verification: Option<actor::VerificationState<'a>>,
1066 #[serde(skip_serializing_if = "Option::is_none")]
1067 #[serde(borrow)]
1068 pub viewer: Option<actor::ViewerState<'a>>,
1069}
1070
1071
1072#[lexicon]
1073#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic)]
1074#[serde(rename_all = "camelCase")]
1075pub struct ProfileViewDetailed<'a> {
1076 #[serde(skip_serializing_if = "Option::is_none")]
1077 #[serde(borrow)]
1078 pub associated: Option<actor::ProfileAssociated<'a>>,
1079 #[serde(skip_serializing_if = "Option::is_none")]
1080 #[serde(borrow)]
1081 pub avatar: Option<UriValue<'a>>,
1082 #[serde(skip_serializing_if = "Option::is_none")]
1083 #[serde(borrow)]
1084 pub banner: Option<UriValue<'a>>,
1085 #[serde(skip_serializing_if = "Option::is_none")]
1086 pub created_at: Option<Datetime>,
1087 #[serde(skip_serializing_if = "Option::is_none")]
1089 #[serde(borrow)]
1090 pub debug: Option<Data<'a>>,
1091 #[serde(skip_serializing_if = "Option::is_none")]
1092 #[serde(borrow)]
1093 pub description: Option<CowStr<'a>>,
1094 #[serde(borrow)]
1095 pub did: Did<'a>,
1096 #[serde(skip_serializing_if = "Option::is_none")]
1097 #[serde(borrow)]
1098 pub display_name: Option<CowStr<'a>>,
1099 #[serde(skip_serializing_if = "Option::is_none")]
1100 pub followers_count: Option<i64>,
1101 #[serde(skip_serializing_if = "Option::is_none")]
1102 pub follows_count: Option<i64>,
1103 #[serde(borrow)]
1104 pub handle: Handle<'a>,
1105 #[serde(skip_serializing_if = "Option::is_none")]
1106 pub indexed_at: Option<Datetime>,
1107 #[serde(skip_serializing_if = "Option::is_none")]
1108 #[serde(borrow)]
1109 pub joined_via_starter_pack: Option<StarterPackViewBasic<'a>>,
1110 #[serde(skip_serializing_if = "Option::is_none")]
1111 #[serde(borrow)]
1112 pub labels: Option<Vec<Label<'a>>>,
1113 #[serde(skip_serializing_if = "Option::is_none")]
1114 #[serde(borrow)]
1115 pub pinned_post: Option<StrongRef<'a>>,
1116 #[serde(skip_serializing_if = "Option::is_none")]
1117 pub posts_count: Option<i64>,
1118 #[serde(skip_serializing_if = "Option::is_none")]
1119 #[serde(borrow)]
1120 pub pronouns: Option<CowStr<'a>>,
1121 #[serde(skip_serializing_if = "Option::is_none")]
1122 #[serde(borrow)]
1123 pub status: Option<actor::StatusView<'a>>,
1124 #[serde(skip_serializing_if = "Option::is_none")]
1125 #[serde(borrow)]
1126 pub verification: Option<actor::VerificationState<'a>>,
1127 #[serde(skip_serializing_if = "Option::is_none")]
1128 #[serde(borrow)]
1129 pub viewer: Option<actor::ViewerState<'a>>,
1130 #[serde(skip_serializing_if = "Option::is_none")]
1131 #[serde(borrow)]
1132 pub website: Option<UriValue<'a>>,
1133}
1134
1135
1136#[lexicon]
1137#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic)]
1138#[serde(rename_all = "camelCase")]
1139pub struct SavedFeed<'a> {
1140 #[serde(borrow)]
1141 pub id: CowStr<'a>,
1142 pub pinned: bool,
1143 #[serde(borrow)]
1144 pub r#type: SavedFeedType<'a>,
1145 #[serde(borrow)]
1146 pub value: CowStr<'a>,
1147}
1148
1149
1150#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1151pub enum SavedFeedType<'a> {
1152 Feed,
1153 List,
1154 Timeline,
1155 Other(CowStr<'a>),
1156}
1157
1158impl<'a> SavedFeedType<'a> {
1159 pub fn as_str(&self) -> &str {
1160 match self {
1161 Self::Feed => "feed",
1162 Self::List => "list",
1163 Self::Timeline => "timeline",
1164 Self::Other(s) => s.as_ref(),
1165 }
1166 }
1167}
1168
1169impl<'a> From<&'a str> for SavedFeedType<'a> {
1170 fn from(s: &'a str) -> Self {
1171 match s {
1172 "feed" => Self::Feed,
1173 "list" => Self::List,
1174 "timeline" => Self::Timeline,
1175 _ => Self::Other(CowStr::from(s)),
1176 }
1177 }
1178}
1179
1180impl<'a> From<String> for SavedFeedType<'a> {
1181 fn from(s: String) -> Self {
1182 match s.as_str() {
1183 "feed" => Self::Feed,
1184 "list" => Self::List,
1185 "timeline" => Self::Timeline,
1186 _ => Self::Other(CowStr::from(s)),
1187 }
1188 }
1189}
1190
1191impl<'a> core::fmt::Display for SavedFeedType<'a> {
1192 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
1193 write!(f, "{}", self.as_str())
1194 }
1195}
1196
1197impl<'a> AsRef<str> for SavedFeedType<'a> {
1198 fn as_ref(&self) -> &str {
1199 self.as_str()
1200 }
1201}
1202
1203impl<'a> serde::Serialize for SavedFeedType<'a> {
1204 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1205 where
1206 S: serde::Serializer,
1207 {
1208 serializer.serialize_str(self.as_str())
1209 }
1210}
1211
1212impl<'de, 'a> serde::Deserialize<'de> for SavedFeedType<'a>
1213where
1214 'de: 'a,
1215{
1216 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1217 where
1218 D: serde::Deserializer<'de>,
1219 {
1220 let s = <&'de str>::deserialize(deserializer)?;
1221 Ok(Self::from(s))
1222 }
1223}
1224
1225impl<'a> Default for SavedFeedType<'a> {
1226 fn default() -> Self {
1227 Self::Other(Default::default())
1228 }
1229}
1230
1231impl jacquard_common::IntoStatic for SavedFeedType<'_> {
1232 type Output = SavedFeedType<'static>;
1233 fn into_static(self) -> Self::Output {
1234 match self {
1235 SavedFeedType::Feed => SavedFeedType::Feed,
1236 SavedFeedType::List => SavedFeedType::List,
1237 SavedFeedType::Timeline => SavedFeedType::Timeline,
1238 SavedFeedType::Other(v) => SavedFeedType::Other(v.into_static()),
1239 }
1240 }
1241}
1242
1243
1244#[lexicon]
1245#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic)]
1246#[serde(rename_all = "camelCase")]
1247pub struct SavedFeedsPref<'a> {
1248 #[serde(borrow)]
1249 pub pinned: Vec<AtUri<'a>>,
1250 #[serde(borrow)]
1251 pub saved: Vec<AtUri<'a>>,
1252 #[serde(skip_serializing_if = "Option::is_none")]
1253 pub timeline_index: Option<i64>,
1254}
1255
1256
1257#[lexicon]
1258#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic)]
1259#[serde(rename_all = "camelCase")]
1260pub struct SavedFeedsPrefV2<'a> {
1261 #[serde(borrow)]
1262 pub items: Vec<actor::SavedFeed<'a>>,
1263}
1264
1265
1266#[lexicon]
1267#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic)]
1268#[serde(rename_all = "camelCase")]
1269pub struct StatusView<'a> {
1270 #[serde(skip_serializing_if = "Option::is_none")]
1271 #[serde(borrow)]
1272 pub cid: Option<Cid<'a>>,
1273 #[serde(skip_serializing_if = "Option::is_none")]
1275 #[serde(borrow)]
1276 pub embed: Option<View<'a>>,
1277 #[serde(skip_serializing_if = "Option::is_none")]
1279 pub expires_at: Option<Datetime>,
1280 #[serde(skip_serializing_if = "Option::is_none")]
1282 pub is_active: Option<bool>,
1283 #[serde(skip_serializing_if = "Option::is_none")]
1285 pub is_disabled: Option<bool>,
1286 #[serde(borrow)]
1287 pub record: Data<'a>,
1288 #[serde(borrow)]
1290 pub status: StatusViewStatus<'a>,
1291 #[serde(skip_serializing_if = "Option::is_none")]
1292 #[serde(borrow)]
1293 pub uri: Option<AtUri<'a>>,
1294}
1295
1296#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1299pub enum StatusViewStatus<'a> {
1300 Live,
1301 Other(CowStr<'a>),
1302}
1303
1304impl<'a> StatusViewStatus<'a> {
1305 pub fn as_str(&self) -> &str {
1306 match self {
1307 Self::Live => "app.bsky.actor.status#live",
1308 Self::Other(s) => s.as_ref(),
1309 }
1310 }
1311}
1312
1313impl<'a> From<&'a str> for StatusViewStatus<'a> {
1314 fn from(s: &'a str) -> Self {
1315 match s {
1316 "app.bsky.actor.status#live" => Self::Live,
1317 _ => Self::Other(CowStr::from(s)),
1318 }
1319 }
1320}
1321
1322impl<'a> From<String> for StatusViewStatus<'a> {
1323 fn from(s: String) -> Self {
1324 match s.as_str() {
1325 "app.bsky.actor.status#live" => Self::Live,
1326 _ => Self::Other(CowStr::from(s)),
1327 }
1328 }
1329}
1330
1331impl<'a> core::fmt::Display for StatusViewStatus<'a> {
1332 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
1333 write!(f, "{}", self.as_str())
1334 }
1335}
1336
1337impl<'a> AsRef<str> for StatusViewStatus<'a> {
1338 fn as_ref(&self) -> &str {
1339 self.as_str()
1340 }
1341}
1342
1343impl<'a> serde::Serialize for StatusViewStatus<'a> {
1344 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1345 where
1346 S: serde::Serializer,
1347 {
1348 serializer.serialize_str(self.as_str())
1349 }
1350}
1351
1352impl<'de, 'a> serde::Deserialize<'de> for StatusViewStatus<'a>
1353where
1354 'de: 'a,
1355{
1356 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1357 where
1358 D: serde::Deserializer<'de>,
1359 {
1360 let s = <&'de str>::deserialize(deserializer)?;
1361 Ok(Self::from(s))
1362 }
1363}
1364
1365impl<'a> Default for StatusViewStatus<'a> {
1366 fn default() -> Self {
1367 Self::Other(Default::default())
1368 }
1369}
1370
1371impl jacquard_common::IntoStatic for StatusViewStatus<'_> {
1372 type Output = StatusViewStatus<'static>;
1373 fn into_static(self) -> Self::Output {
1374 match self {
1375 StatusViewStatus::Live => StatusViewStatus::Live,
1376 StatusViewStatus::Other(v) => StatusViewStatus::Other(v.into_static()),
1377 }
1378 }
1379}
1380
1381
1382#[lexicon]
1383#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic, Default)]
1384#[serde(rename_all = "camelCase")]
1385pub struct ThreadViewPref<'a> {
1386 #[serde(skip_serializing_if = "Option::is_none")]
1388 #[serde(borrow)]
1389 pub sort: Option<ThreadViewPrefSort<'a>>,
1390}
1391
1392#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1395pub enum ThreadViewPrefSort<'a> {
1396 Oldest,
1397 Newest,
1398 MostLikes,
1399 Random,
1400 Hotness,
1401 Other(CowStr<'a>),
1402}
1403
1404impl<'a> ThreadViewPrefSort<'a> {
1405 pub fn as_str(&self) -> &str {
1406 match self {
1407 Self::Oldest => "oldest",
1408 Self::Newest => "newest",
1409 Self::MostLikes => "most-likes",
1410 Self::Random => "random",
1411 Self::Hotness => "hotness",
1412 Self::Other(s) => s.as_ref(),
1413 }
1414 }
1415}
1416
1417impl<'a> From<&'a str> for ThreadViewPrefSort<'a> {
1418 fn from(s: &'a str) -> Self {
1419 match s {
1420 "oldest" => Self::Oldest,
1421 "newest" => Self::Newest,
1422 "most-likes" => Self::MostLikes,
1423 "random" => Self::Random,
1424 "hotness" => Self::Hotness,
1425 _ => Self::Other(CowStr::from(s)),
1426 }
1427 }
1428}
1429
1430impl<'a> From<String> for ThreadViewPrefSort<'a> {
1431 fn from(s: String) -> Self {
1432 match s.as_str() {
1433 "oldest" => Self::Oldest,
1434 "newest" => Self::Newest,
1435 "most-likes" => Self::MostLikes,
1436 "random" => Self::Random,
1437 "hotness" => Self::Hotness,
1438 _ => Self::Other(CowStr::from(s)),
1439 }
1440 }
1441}
1442
1443impl<'a> core::fmt::Display for ThreadViewPrefSort<'a> {
1444 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
1445 write!(f, "{}", self.as_str())
1446 }
1447}
1448
1449impl<'a> AsRef<str> for ThreadViewPrefSort<'a> {
1450 fn as_ref(&self) -> &str {
1451 self.as_str()
1452 }
1453}
1454
1455impl<'a> serde::Serialize for ThreadViewPrefSort<'a> {
1456 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1457 where
1458 S: serde::Serializer,
1459 {
1460 serializer.serialize_str(self.as_str())
1461 }
1462}
1463
1464impl<'de, 'a> serde::Deserialize<'de> for ThreadViewPrefSort<'a>
1465where
1466 'de: 'a,
1467{
1468 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1469 where
1470 D: serde::Deserializer<'de>,
1471 {
1472 let s = <&'de str>::deserialize(deserializer)?;
1473 Ok(Self::from(s))
1474 }
1475}
1476
1477impl<'a> Default for ThreadViewPrefSort<'a> {
1478 fn default() -> Self {
1479 Self::Other(Default::default())
1480 }
1481}
1482
1483impl jacquard_common::IntoStatic for ThreadViewPrefSort<'_> {
1484 type Output = ThreadViewPrefSort<'static>;
1485 fn into_static(self) -> Self::Output {
1486 match self {
1487 ThreadViewPrefSort::Oldest => ThreadViewPrefSort::Oldest,
1488 ThreadViewPrefSort::Newest => ThreadViewPrefSort::Newest,
1489 ThreadViewPrefSort::MostLikes => ThreadViewPrefSort::MostLikes,
1490 ThreadViewPrefSort::Random => ThreadViewPrefSort::Random,
1491 ThreadViewPrefSort::Hotness => ThreadViewPrefSort::Hotness,
1492 ThreadViewPrefSort::Other(v) => ThreadViewPrefSort::Other(v.into_static()),
1493 }
1494 }
1495}
1496
1497#[lexicon]
1500#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic)]
1501#[serde(rename_all = "camelCase")]
1502pub struct VerificationPrefs<'a> {
1503 #[serde(skip_serializing_if = "Option::is_none")]
1505 #[serde(default = "_default_verification_prefs_hide_badges")]
1506 pub hide_badges: Option<bool>,
1507}
1508
1509#[lexicon]
1512#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic)]
1513#[serde(rename_all = "camelCase")]
1514pub struct VerificationState<'a> {
1515 #[serde(borrow)]
1517 pub trusted_verifier_status: VerificationStateTrustedVerifierStatus<'a>,
1518 #[serde(borrow)]
1520 pub verifications: Vec<actor::VerificationView<'a>>,
1521 #[serde(borrow)]
1523 pub verified_status: VerificationStateVerifiedStatus<'a>,
1524}
1525
1526#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1529pub enum VerificationStateTrustedVerifierStatus<'a> {
1530 Valid,
1531 Invalid,
1532 None,
1533 Other(CowStr<'a>),
1534}
1535
1536impl<'a> VerificationStateTrustedVerifierStatus<'a> {
1537 pub fn as_str(&self) -> &str {
1538 match self {
1539 Self::Valid => "valid",
1540 Self::Invalid => "invalid",
1541 Self::None => "none",
1542 Self::Other(s) => s.as_ref(),
1543 }
1544 }
1545}
1546
1547impl<'a> From<&'a str> for VerificationStateTrustedVerifierStatus<'a> {
1548 fn from(s: &'a str) -> Self {
1549 match s {
1550 "valid" => Self::Valid,
1551 "invalid" => Self::Invalid,
1552 "none" => Self::None,
1553 _ => Self::Other(CowStr::from(s)),
1554 }
1555 }
1556}
1557
1558impl<'a> From<String> for VerificationStateTrustedVerifierStatus<'a> {
1559 fn from(s: String) -> Self {
1560 match s.as_str() {
1561 "valid" => Self::Valid,
1562 "invalid" => Self::Invalid,
1563 "none" => Self::None,
1564 _ => Self::Other(CowStr::from(s)),
1565 }
1566 }
1567}
1568
1569impl<'a> core::fmt::Display for VerificationStateTrustedVerifierStatus<'a> {
1570 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
1571 write!(f, "{}", self.as_str())
1572 }
1573}
1574
1575impl<'a> AsRef<str> for VerificationStateTrustedVerifierStatus<'a> {
1576 fn as_ref(&self) -> &str {
1577 self.as_str()
1578 }
1579}
1580
1581impl<'a> serde::Serialize for VerificationStateTrustedVerifierStatus<'a> {
1582 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1583 where
1584 S: serde::Serializer,
1585 {
1586 serializer.serialize_str(self.as_str())
1587 }
1588}
1589
1590impl<'de, 'a> serde::Deserialize<'de> for VerificationStateTrustedVerifierStatus<'a>
1591where
1592 'de: 'a,
1593{
1594 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1595 where
1596 D: serde::Deserializer<'de>,
1597 {
1598 let s = <&'de str>::deserialize(deserializer)?;
1599 Ok(Self::from(s))
1600 }
1601}
1602
1603impl<'a> Default for VerificationStateTrustedVerifierStatus<'a> {
1604 fn default() -> Self {
1605 Self::Other(Default::default())
1606 }
1607}
1608
1609impl jacquard_common::IntoStatic for VerificationStateTrustedVerifierStatus<'_> {
1610 type Output = VerificationStateTrustedVerifierStatus<'static>;
1611 fn into_static(self) -> Self::Output {
1612 match self {
1613 VerificationStateTrustedVerifierStatus::Valid => {
1614 VerificationStateTrustedVerifierStatus::Valid
1615 }
1616 VerificationStateTrustedVerifierStatus::Invalid => {
1617 VerificationStateTrustedVerifierStatus::Invalid
1618 }
1619 VerificationStateTrustedVerifierStatus::None => {
1620 VerificationStateTrustedVerifierStatus::None
1621 }
1622 VerificationStateTrustedVerifierStatus::Other(v) => {
1623 VerificationStateTrustedVerifierStatus::Other(v.into_static())
1624 }
1625 }
1626 }
1627}
1628
1629#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1632pub enum VerificationStateVerifiedStatus<'a> {
1633 Valid,
1634 Invalid,
1635 None,
1636 Other(CowStr<'a>),
1637}
1638
1639impl<'a> VerificationStateVerifiedStatus<'a> {
1640 pub fn as_str(&self) -> &str {
1641 match self {
1642 Self::Valid => "valid",
1643 Self::Invalid => "invalid",
1644 Self::None => "none",
1645 Self::Other(s) => s.as_ref(),
1646 }
1647 }
1648}
1649
1650impl<'a> From<&'a str> for VerificationStateVerifiedStatus<'a> {
1651 fn from(s: &'a str) -> Self {
1652 match s {
1653 "valid" => Self::Valid,
1654 "invalid" => Self::Invalid,
1655 "none" => Self::None,
1656 _ => Self::Other(CowStr::from(s)),
1657 }
1658 }
1659}
1660
1661impl<'a> From<String> for VerificationStateVerifiedStatus<'a> {
1662 fn from(s: String) -> Self {
1663 match s.as_str() {
1664 "valid" => Self::Valid,
1665 "invalid" => Self::Invalid,
1666 "none" => Self::None,
1667 _ => Self::Other(CowStr::from(s)),
1668 }
1669 }
1670}
1671
1672impl<'a> core::fmt::Display for VerificationStateVerifiedStatus<'a> {
1673 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
1674 write!(f, "{}", self.as_str())
1675 }
1676}
1677
1678impl<'a> AsRef<str> for VerificationStateVerifiedStatus<'a> {
1679 fn as_ref(&self) -> &str {
1680 self.as_str()
1681 }
1682}
1683
1684impl<'a> serde::Serialize for VerificationStateVerifiedStatus<'a> {
1685 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1686 where
1687 S: serde::Serializer,
1688 {
1689 serializer.serialize_str(self.as_str())
1690 }
1691}
1692
1693impl<'de, 'a> serde::Deserialize<'de> for VerificationStateVerifiedStatus<'a>
1694where
1695 'de: 'a,
1696{
1697 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1698 where
1699 D: serde::Deserializer<'de>,
1700 {
1701 let s = <&'de str>::deserialize(deserializer)?;
1702 Ok(Self::from(s))
1703 }
1704}
1705
1706impl<'a> Default for VerificationStateVerifiedStatus<'a> {
1707 fn default() -> Self {
1708 Self::Other(Default::default())
1709 }
1710}
1711
1712impl jacquard_common::IntoStatic for VerificationStateVerifiedStatus<'_> {
1713 type Output = VerificationStateVerifiedStatus<'static>;
1714 fn into_static(self) -> Self::Output {
1715 match self {
1716 VerificationStateVerifiedStatus::Valid => {
1717 VerificationStateVerifiedStatus::Valid
1718 }
1719 VerificationStateVerifiedStatus::Invalid => {
1720 VerificationStateVerifiedStatus::Invalid
1721 }
1722 VerificationStateVerifiedStatus::None => {
1723 VerificationStateVerifiedStatus::None
1724 }
1725 VerificationStateVerifiedStatus::Other(v) => {
1726 VerificationStateVerifiedStatus::Other(v.into_static())
1727 }
1728 }
1729 }
1730}
1731
1732#[lexicon]
1735#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic)]
1736#[serde(rename_all = "camelCase")]
1737pub struct VerificationView<'a> {
1738 pub created_at: Datetime,
1740 pub is_valid: bool,
1742 #[serde(borrow)]
1744 pub issuer: Did<'a>,
1745 #[serde(borrow)]
1747 pub uri: AtUri<'a>,
1748}
1749
1750#[lexicon]
1753#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic, Default)]
1754#[serde(rename_all = "camelCase")]
1755pub struct ViewerState<'a> {
1756 #[serde(skip_serializing_if = "Option::is_none")]
1758 #[serde(borrow)]
1759 pub activity_subscription: Option<ActivitySubscription<'a>>,
1760 #[serde(skip_serializing_if = "Option::is_none")]
1761 pub blocked_by: Option<bool>,
1762 #[serde(skip_serializing_if = "Option::is_none")]
1763 #[serde(borrow)]
1764 pub blocking: Option<AtUri<'a>>,
1765 #[serde(skip_serializing_if = "Option::is_none")]
1766 #[serde(borrow)]
1767 pub blocking_by_list: Option<ListViewBasic<'a>>,
1768 #[serde(skip_serializing_if = "Option::is_none")]
1769 #[serde(borrow)]
1770 pub followed_by: Option<AtUri<'a>>,
1771 #[serde(skip_serializing_if = "Option::is_none")]
1772 #[serde(borrow)]
1773 pub following: Option<AtUri<'a>>,
1774 #[serde(skip_serializing_if = "Option::is_none")]
1776 #[serde(borrow)]
1777 pub known_followers: Option<actor::KnownFollowers<'a>>,
1778 #[serde(skip_serializing_if = "Option::is_none")]
1779 pub muted: Option<bool>,
1780 #[serde(skip_serializing_if = "Option::is_none")]
1781 #[serde(borrow)]
1782 pub muted_by_list: Option<ListViewBasic<'a>>,
1783}
1784
1785impl<'a> LexiconSchema for AdultContentPref<'a> {
1786 fn nsid() -> &'static str {
1787 "app.bsky.actor.defs"
1788 }
1789 fn def_name() -> &'static str {
1790 "adultContentPref"
1791 }
1792 fn lexicon_doc() -> LexiconDoc<'static> {
1793 lexicon_doc_app_bsky_actor_defs()
1794 }
1795 fn validate(&self) -> Result<(), ConstraintError> {
1796 Ok(())
1797 }
1798}
1799
1800impl<'a> LexiconSchema for BskyAppProgressGuide<'a> {
1801 fn nsid() -> &'static str {
1802 "app.bsky.actor.defs"
1803 }
1804 fn def_name() -> &'static str {
1805 "bskyAppProgressGuide"
1806 }
1807 fn lexicon_doc() -> LexiconDoc<'static> {
1808 lexicon_doc_app_bsky_actor_defs()
1809 }
1810 fn validate(&self) -> Result<(), ConstraintError> {
1811 {
1812 let value = &self.guide;
1813 #[allow(unused_comparisons)]
1814 if <str>::len(value.as_ref()) > 100usize {
1815 return Err(ConstraintError::MaxLength {
1816 path: ValidationPath::from_field("guide"),
1817 max: 100usize,
1818 actual: <str>::len(value.as_ref()),
1819 });
1820 }
1821 }
1822 Ok(())
1823 }
1824}
1825
1826impl<'a> LexiconSchema for BskyAppStatePref<'a> {
1827 fn nsid() -> &'static str {
1828 "app.bsky.actor.defs"
1829 }
1830 fn def_name() -> &'static str {
1831 "bskyAppStatePref"
1832 }
1833 fn lexicon_doc() -> LexiconDoc<'static> {
1834 lexicon_doc_app_bsky_actor_defs()
1835 }
1836 fn validate(&self) -> Result<(), ConstraintError> {
1837 if let Some(ref value) = self.nuxs {
1838 #[allow(unused_comparisons)]
1839 if value.len() > 100usize {
1840 return Err(ConstraintError::MaxLength {
1841 path: ValidationPath::from_field("nuxs"),
1842 max: 100usize,
1843 actual: value.len(),
1844 });
1845 }
1846 }
1847 if let Some(ref value) = self.queued_nudges {
1848 #[allow(unused_comparisons)]
1849 if value.len() > 1000usize {
1850 return Err(ConstraintError::MaxLength {
1851 path: ValidationPath::from_field("queued_nudges"),
1852 max: 1000usize,
1853 actual: value.len(),
1854 });
1855 }
1856 }
1857 Ok(())
1858 }
1859}
1860
1861impl<'a> LexiconSchema for ContentLabelPref<'a> {
1862 fn nsid() -> &'static str {
1863 "app.bsky.actor.defs"
1864 }
1865 fn def_name() -> &'static str {
1866 "contentLabelPref"
1867 }
1868 fn lexicon_doc() -> LexiconDoc<'static> {
1869 lexicon_doc_app_bsky_actor_defs()
1870 }
1871 fn validate(&self) -> Result<(), ConstraintError> {
1872 Ok(())
1873 }
1874}
1875
1876impl<'a> LexiconSchema for DeclaredAgePref<'a> {
1877 fn nsid() -> &'static str {
1878 "app.bsky.actor.defs"
1879 }
1880 fn def_name() -> &'static str {
1881 "declaredAgePref"
1882 }
1883 fn lexicon_doc() -> LexiconDoc<'static> {
1884 lexicon_doc_app_bsky_actor_defs()
1885 }
1886 fn validate(&self) -> Result<(), ConstraintError> {
1887 Ok(())
1888 }
1889}
1890
1891impl<'a> LexiconSchema for FeedViewPref<'a> {
1892 fn nsid() -> &'static str {
1893 "app.bsky.actor.defs"
1894 }
1895 fn def_name() -> &'static str {
1896 "feedViewPref"
1897 }
1898 fn lexicon_doc() -> LexiconDoc<'static> {
1899 lexicon_doc_app_bsky_actor_defs()
1900 }
1901 fn validate(&self) -> Result<(), ConstraintError> {
1902 Ok(())
1903 }
1904}
1905
1906impl<'a> LexiconSchema for HiddenPostsPref<'a> {
1907 fn nsid() -> &'static str {
1908 "app.bsky.actor.defs"
1909 }
1910 fn def_name() -> &'static str {
1911 "hiddenPostsPref"
1912 }
1913 fn lexicon_doc() -> LexiconDoc<'static> {
1914 lexicon_doc_app_bsky_actor_defs()
1915 }
1916 fn validate(&self) -> Result<(), ConstraintError> {
1917 Ok(())
1918 }
1919}
1920
1921impl<'a> LexiconSchema for InterestsPref<'a> {
1922 fn nsid() -> &'static str {
1923 "app.bsky.actor.defs"
1924 }
1925 fn def_name() -> &'static str {
1926 "interestsPref"
1927 }
1928 fn lexicon_doc() -> LexiconDoc<'static> {
1929 lexicon_doc_app_bsky_actor_defs()
1930 }
1931 fn validate(&self) -> Result<(), ConstraintError> {
1932 {
1933 let value = &self.tags;
1934 #[allow(unused_comparisons)]
1935 if value.len() > 100usize {
1936 return Err(ConstraintError::MaxLength {
1937 path: ValidationPath::from_field("tags"),
1938 max: 100usize,
1939 actual: value.len(),
1940 });
1941 }
1942 }
1943 Ok(())
1944 }
1945}
1946
1947impl<'a> LexiconSchema for KnownFollowers<'a> {
1948 fn nsid() -> &'static str {
1949 "app.bsky.actor.defs"
1950 }
1951 fn def_name() -> &'static str {
1952 "knownFollowers"
1953 }
1954 fn lexicon_doc() -> LexiconDoc<'static> {
1955 lexicon_doc_app_bsky_actor_defs()
1956 }
1957 fn validate(&self) -> Result<(), ConstraintError> {
1958 {
1959 let value = &self.followers;
1960 #[allow(unused_comparisons)]
1961 if value.len() > 5usize {
1962 return Err(ConstraintError::MaxLength {
1963 path: ValidationPath::from_field("followers"),
1964 max: 5usize,
1965 actual: value.len(),
1966 });
1967 }
1968 }
1969 {
1970 let value = &self.followers;
1971 #[allow(unused_comparisons)]
1972 if value.len() < 0usize {
1973 return Err(ConstraintError::MinLength {
1974 path: ValidationPath::from_field("followers"),
1975 min: 0usize,
1976 actual: value.len(),
1977 });
1978 }
1979 }
1980 Ok(())
1981 }
1982}
1983
1984impl<'a> LexiconSchema for LabelerPrefItem<'a> {
1985 fn nsid() -> &'static str {
1986 "app.bsky.actor.defs"
1987 }
1988 fn def_name() -> &'static str {
1989 "labelerPrefItem"
1990 }
1991 fn lexicon_doc() -> LexiconDoc<'static> {
1992 lexicon_doc_app_bsky_actor_defs()
1993 }
1994 fn validate(&self) -> Result<(), ConstraintError> {
1995 Ok(())
1996 }
1997}
1998
1999impl<'a> LexiconSchema for LabelersPref<'a> {
2000 fn nsid() -> &'static str {
2001 "app.bsky.actor.defs"
2002 }
2003 fn def_name() -> &'static str {
2004 "labelersPref"
2005 }
2006 fn lexicon_doc() -> LexiconDoc<'static> {
2007 lexicon_doc_app_bsky_actor_defs()
2008 }
2009 fn validate(&self) -> Result<(), ConstraintError> {
2010 Ok(())
2011 }
2012}
2013
2014impl<'a> LexiconSchema for LiveEventPreferences<'a> {
2015 fn nsid() -> &'static str {
2016 "app.bsky.actor.defs"
2017 }
2018 fn def_name() -> &'static str {
2019 "liveEventPreferences"
2020 }
2021 fn lexicon_doc() -> LexiconDoc<'static> {
2022 lexicon_doc_app_bsky_actor_defs()
2023 }
2024 fn validate(&self) -> Result<(), ConstraintError> {
2025 Ok(())
2026 }
2027}
2028
2029impl<'a> LexiconSchema for MutedWord<'a> {
2030 fn nsid() -> &'static str {
2031 "app.bsky.actor.defs"
2032 }
2033 fn def_name() -> &'static str {
2034 "mutedWord"
2035 }
2036 fn lexicon_doc() -> LexiconDoc<'static> {
2037 lexicon_doc_app_bsky_actor_defs()
2038 }
2039 fn validate(&self) -> Result<(), ConstraintError> {
2040 {
2041 let value = &self.value;
2042 #[allow(unused_comparisons)]
2043 if <str>::len(value.as_ref()) > 10000usize {
2044 return Err(ConstraintError::MaxLength {
2045 path: ValidationPath::from_field("value"),
2046 max: 10000usize,
2047 actual: <str>::len(value.as_ref()),
2048 });
2049 }
2050 }
2051 {
2052 let value = &self.value;
2053 {
2054 let count = UnicodeSegmentation::graphemes(value.as_ref(), true).count();
2055 if count > 1000usize {
2056 return Err(ConstraintError::MaxGraphemes {
2057 path: ValidationPath::from_field("value"),
2058 max: 1000usize,
2059 actual: count,
2060 });
2061 }
2062 }
2063 }
2064 Ok(())
2065 }
2066}
2067
2068impl<'a> LexiconSchema for MutedWordsPref<'a> {
2069 fn nsid() -> &'static str {
2070 "app.bsky.actor.defs"
2071 }
2072 fn def_name() -> &'static str {
2073 "mutedWordsPref"
2074 }
2075 fn lexicon_doc() -> LexiconDoc<'static> {
2076 lexicon_doc_app_bsky_actor_defs()
2077 }
2078 fn validate(&self) -> Result<(), ConstraintError> {
2079 Ok(())
2080 }
2081}
2082
2083impl<'a> LexiconSchema for Nux<'a> {
2084 fn nsid() -> &'static str {
2085 "app.bsky.actor.defs"
2086 }
2087 fn def_name() -> &'static str {
2088 "nux"
2089 }
2090 fn lexicon_doc() -> LexiconDoc<'static> {
2091 lexicon_doc_app_bsky_actor_defs()
2092 }
2093 fn validate(&self) -> Result<(), ConstraintError> {
2094 if let Some(ref value) = self.data {
2095 #[allow(unused_comparisons)]
2096 if <str>::len(value.as_ref()) > 3000usize {
2097 return Err(ConstraintError::MaxLength {
2098 path: ValidationPath::from_field("data"),
2099 max: 3000usize,
2100 actual: <str>::len(value.as_ref()),
2101 });
2102 }
2103 }
2104 if let Some(ref value) = self.data {
2105 {
2106 let count = UnicodeSegmentation::graphemes(value.as_ref(), true).count();
2107 if count > 300usize {
2108 return Err(ConstraintError::MaxGraphemes {
2109 path: ValidationPath::from_field("data"),
2110 max: 300usize,
2111 actual: count,
2112 });
2113 }
2114 }
2115 }
2116 {
2117 let value = &self.id;
2118 #[allow(unused_comparisons)]
2119 if <str>::len(value.as_ref()) > 100usize {
2120 return Err(ConstraintError::MaxLength {
2121 path: ValidationPath::from_field("id"),
2122 max: 100usize,
2123 actual: <str>::len(value.as_ref()),
2124 });
2125 }
2126 }
2127 Ok(())
2128 }
2129}
2130
2131impl<'a> LexiconSchema for PersonalDetailsPref<'a> {
2132 fn nsid() -> &'static str {
2133 "app.bsky.actor.defs"
2134 }
2135 fn def_name() -> &'static str {
2136 "personalDetailsPref"
2137 }
2138 fn lexicon_doc() -> LexiconDoc<'static> {
2139 lexicon_doc_app_bsky_actor_defs()
2140 }
2141 fn validate(&self) -> Result<(), ConstraintError> {
2142 Ok(())
2143 }
2144}
2145
2146impl<'a> LexiconSchema for PostInteractionSettingsPref<'a> {
2147 fn nsid() -> &'static str {
2148 "app.bsky.actor.defs"
2149 }
2150 fn def_name() -> &'static str {
2151 "postInteractionSettingsPref"
2152 }
2153 fn lexicon_doc() -> LexiconDoc<'static> {
2154 lexicon_doc_app_bsky_actor_defs()
2155 }
2156 fn validate(&self) -> Result<(), ConstraintError> {
2157 if let Some(ref value) = self.postgate_embedding_rules {
2158 #[allow(unused_comparisons)]
2159 if value.len() > 5usize {
2160 return Err(ConstraintError::MaxLength {
2161 path: ValidationPath::from_field("postgate_embedding_rules"),
2162 max: 5usize,
2163 actual: value.len(),
2164 });
2165 }
2166 }
2167 if let Some(ref value) = self.threadgate_allow_rules {
2168 #[allow(unused_comparisons)]
2169 if value.len() > 5usize {
2170 return Err(ConstraintError::MaxLength {
2171 path: ValidationPath::from_field("threadgate_allow_rules"),
2172 max: 5usize,
2173 actual: value.len(),
2174 });
2175 }
2176 }
2177 Ok(())
2178 }
2179}
2180
2181impl<'a> LexiconSchema for ProfileAssociated<'a> {
2182 fn nsid() -> &'static str {
2183 "app.bsky.actor.defs"
2184 }
2185 fn def_name() -> &'static str {
2186 "profileAssociated"
2187 }
2188 fn lexicon_doc() -> LexiconDoc<'static> {
2189 lexicon_doc_app_bsky_actor_defs()
2190 }
2191 fn validate(&self) -> Result<(), ConstraintError> {
2192 Ok(())
2193 }
2194}
2195
2196impl<'a> LexiconSchema for ProfileAssociatedActivitySubscription<'a> {
2197 fn nsid() -> &'static str {
2198 "app.bsky.actor.defs"
2199 }
2200 fn def_name() -> &'static str {
2201 "profileAssociatedActivitySubscription"
2202 }
2203 fn lexicon_doc() -> LexiconDoc<'static> {
2204 lexicon_doc_app_bsky_actor_defs()
2205 }
2206 fn validate(&self) -> Result<(), ConstraintError> {
2207 Ok(())
2208 }
2209}
2210
2211impl<'a> LexiconSchema for ProfileAssociatedChat<'a> {
2212 fn nsid() -> &'static str {
2213 "app.bsky.actor.defs"
2214 }
2215 fn def_name() -> &'static str {
2216 "profileAssociatedChat"
2217 }
2218 fn lexicon_doc() -> LexiconDoc<'static> {
2219 lexicon_doc_app_bsky_actor_defs()
2220 }
2221 fn validate(&self) -> Result<(), ConstraintError> {
2222 Ok(())
2223 }
2224}
2225
2226impl<'a> LexiconSchema for ProfileAssociatedGerm<'a> {
2227 fn nsid() -> &'static str {
2228 "app.bsky.actor.defs"
2229 }
2230 fn def_name() -> &'static str {
2231 "profileAssociatedGerm"
2232 }
2233 fn lexicon_doc() -> LexiconDoc<'static> {
2234 lexicon_doc_app_bsky_actor_defs()
2235 }
2236 fn validate(&self) -> Result<(), ConstraintError> {
2237 Ok(())
2238 }
2239}
2240
2241impl<'a> LexiconSchema for ProfileView<'a> {
2242 fn nsid() -> &'static str {
2243 "app.bsky.actor.defs"
2244 }
2245 fn def_name() -> &'static str {
2246 "profileView"
2247 }
2248 fn lexicon_doc() -> LexiconDoc<'static> {
2249 lexicon_doc_app_bsky_actor_defs()
2250 }
2251 fn validate(&self) -> Result<(), ConstraintError> {
2252 if let Some(ref value) = self.description {
2253 #[allow(unused_comparisons)]
2254 if <str>::len(value.as_ref()) > 2560usize {
2255 return Err(ConstraintError::MaxLength {
2256 path: ValidationPath::from_field("description"),
2257 max: 2560usize,
2258 actual: <str>::len(value.as_ref()),
2259 });
2260 }
2261 }
2262 if let Some(ref value) = self.description {
2263 {
2264 let count = UnicodeSegmentation::graphemes(value.as_ref(), true).count();
2265 if count > 256usize {
2266 return Err(ConstraintError::MaxGraphemes {
2267 path: ValidationPath::from_field("description"),
2268 max: 256usize,
2269 actual: count,
2270 });
2271 }
2272 }
2273 }
2274 if let Some(ref value) = self.display_name {
2275 #[allow(unused_comparisons)]
2276 if <str>::len(value.as_ref()) > 640usize {
2277 return Err(ConstraintError::MaxLength {
2278 path: ValidationPath::from_field("display_name"),
2279 max: 640usize,
2280 actual: <str>::len(value.as_ref()),
2281 });
2282 }
2283 }
2284 if let Some(ref value) = self.display_name {
2285 {
2286 let count = UnicodeSegmentation::graphemes(value.as_ref(), true).count();
2287 if count > 64usize {
2288 return Err(ConstraintError::MaxGraphemes {
2289 path: ValidationPath::from_field("display_name"),
2290 max: 64usize,
2291 actual: count,
2292 });
2293 }
2294 }
2295 }
2296 Ok(())
2297 }
2298}
2299
2300impl<'a> LexiconSchema for ProfileViewBasic<'a> {
2301 fn nsid() -> &'static str {
2302 "app.bsky.actor.defs"
2303 }
2304 fn def_name() -> &'static str {
2305 "profileViewBasic"
2306 }
2307 fn lexicon_doc() -> LexiconDoc<'static> {
2308 lexicon_doc_app_bsky_actor_defs()
2309 }
2310 fn validate(&self) -> Result<(), ConstraintError> {
2311 if let Some(ref value) = self.display_name {
2312 #[allow(unused_comparisons)]
2313 if <str>::len(value.as_ref()) > 640usize {
2314 return Err(ConstraintError::MaxLength {
2315 path: ValidationPath::from_field("display_name"),
2316 max: 640usize,
2317 actual: <str>::len(value.as_ref()),
2318 });
2319 }
2320 }
2321 if let Some(ref value) = self.display_name {
2322 {
2323 let count = UnicodeSegmentation::graphemes(value.as_ref(), true).count();
2324 if count > 64usize {
2325 return Err(ConstraintError::MaxGraphemes {
2326 path: ValidationPath::from_field("display_name"),
2327 max: 64usize,
2328 actual: count,
2329 });
2330 }
2331 }
2332 }
2333 Ok(())
2334 }
2335}
2336
2337impl<'a> LexiconSchema for ProfileViewDetailed<'a> {
2338 fn nsid() -> &'static str {
2339 "app.bsky.actor.defs"
2340 }
2341 fn def_name() -> &'static str {
2342 "profileViewDetailed"
2343 }
2344 fn lexicon_doc() -> LexiconDoc<'static> {
2345 lexicon_doc_app_bsky_actor_defs()
2346 }
2347 fn validate(&self) -> Result<(), ConstraintError> {
2348 if let Some(ref value) = self.description {
2349 #[allow(unused_comparisons)]
2350 if <str>::len(value.as_ref()) > 2560usize {
2351 return Err(ConstraintError::MaxLength {
2352 path: ValidationPath::from_field("description"),
2353 max: 2560usize,
2354 actual: <str>::len(value.as_ref()),
2355 });
2356 }
2357 }
2358 if let Some(ref value) = self.description {
2359 {
2360 let count = UnicodeSegmentation::graphemes(value.as_ref(), true).count();
2361 if count > 256usize {
2362 return Err(ConstraintError::MaxGraphemes {
2363 path: ValidationPath::from_field("description"),
2364 max: 256usize,
2365 actual: count,
2366 });
2367 }
2368 }
2369 }
2370 if let Some(ref value) = self.display_name {
2371 #[allow(unused_comparisons)]
2372 if <str>::len(value.as_ref()) > 640usize {
2373 return Err(ConstraintError::MaxLength {
2374 path: ValidationPath::from_field("display_name"),
2375 max: 640usize,
2376 actual: <str>::len(value.as_ref()),
2377 });
2378 }
2379 }
2380 if let Some(ref value) = self.display_name {
2381 {
2382 let count = UnicodeSegmentation::graphemes(value.as_ref(), true).count();
2383 if count > 64usize {
2384 return Err(ConstraintError::MaxGraphemes {
2385 path: ValidationPath::from_field("display_name"),
2386 max: 64usize,
2387 actual: count,
2388 });
2389 }
2390 }
2391 }
2392 Ok(())
2393 }
2394}
2395
2396impl<'a> LexiconSchema for SavedFeed<'a> {
2397 fn nsid() -> &'static str {
2398 "app.bsky.actor.defs"
2399 }
2400 fn def_name() -> &'static str {
2401 "savedFeed"
2402 }
2403 fn lexicon_doc() -> LexiconDoc<'static> {
2404 lexicon_doc_app_bsky_actor_defs()
2405 }
2406 fn validate(&self) -> Result<(), ConstraintError> {
2407 Ok(())
2408 }
2409}
2410
2411impl<'a> LexiconSchema for SavedFeedsPref<'a> {
2412 fn nsid() -> &'static str {
2413 "app.bsky.actor.defs"
2414 }
2415 fn def_name() -> &'static str {
2416 "savedFeedsPref"
2417 }
2418 fn lexicon_doc() -> LexiconDoc<'static> {
2419 lexicon_doc_app_bsky_actor_defs()
2420 }
2421 fn validate(&self) -> Result<(), ConstraintError> {
2422 Ok(())
2423 }
2424}
2425
2426impl<'a> LexiconSchema for SavedFeedsPrefV2<'a> {
2427 fn nsid() -> &'static str {
2428 "app.bsky.actor.defs"
2429 }
2430 fn def_name() -> &'static str {
2431 "savedFeedsPrefV2"
2432 }
2433 fn lexicon_doc() -> LexiconDoc<'static> {
2434 lexicon_doc_app_bsky_actor_defs()
2435 }
2436 fn validate(&self) -> Result<(), ConstraintError> {
2437 Ok(())
2438 }
2439}
2440
2441impl<'a> LexiconSchema for StatusView<'a> {
2442 fn nsid() -> &'static str {
2443 "app.bsky.actor.defs"
2444 }
2445 fn def_name() -> &'static str {
2446 "statusView"
2447 }
2448 fn lexicon_doc() -> LexiconDoc<'static> {
2449 lexicon_doc_app_bsky_actor_defs()
2450 }
2451 fn validate(&self) -> Result<(), ConstraintError> {
2452 Ok(())
2453 }
2454}
2455
2456impl<'a> LexiconSchema for ThreadViewPref<'a> {
2457 fn nsid() -> &'static str {
2458 "app.bsky.actor.defs"
2459 }
2460 fn def_name() -> &'static str {
2461 "threadViewPref"
2462 }
2463 fn lexicon_doc() -> LexiconDoc<'static> {
2464 lexicon_doc_app_bsky_actor_defs()
2465 }
2466 fn validate(&self) -> Result<(), ConstraintError> {
2467 Ok(())
2468 }
2469}
2470
2471impl<'a> LexiconSchema for VerificationPrefs<'a> {
2472 fn nsid() -> &'static str {
2473 "app.bsky.actor.defs"
2474 }
2475 fn def_name() -> &'static str {
2476 "verificationPrefs"
2477 }
2478 fn lexicon_doc() -> LexiconDoc<'static> {
2479 lexicon_doc_app_bsky_actor_defs()
2480 }
2481 fn validate(&self) -> Result<(), ConstraintError> {
2482 Ok(())
2483 }
2484}
2485
2486impl<'a> LexiconSchema for VerificationState<'a> {
2487 fn nsid() -> &'static str {
2488 "app.bsky.actor.defs"
2489 }
2490 fn def_name() -> &'static str {
2491 "verificationState"
2492 }
2493 fn lexicon_doc() -> LexiconDoc<'static> {
2494 lexicon_doc_app_bsky_actor_defs()
2495 }
2496 fn validate(&self) -> Result<(), ConstraintError> {
2497 Ok(())
2498 }
2499}
2500
2501impl<'a> LexiconSchema for VerificationView<'a> {
2502 fn nsid() -> &'static str {
2503 "app.bsky.actor.defs"
2504 }
2505 fn def_name() -> &'static str {
2506 "verificationView"
2507 }
2508 fn lexicon_doc() -> LexiconDoc<'static> {
2509 lexicon_doc_app_bsky_actor_defs()
2510 }
2511 fn validate(&self) -> Result<(), ConstraintError> {
2512 Ok(())
2513 }
2514}
2515
2516impl<'a> LexiconSchema for ViewerState<'a> {
2517 fn nsid() -> &'static str {
2518 "app.bsky.actor.defs"
2519 }
2520 fn def_name() -> &'static str {
2521 "viewerState"
2522 }
2523 fn lexicon_doc() -> LexiconDoc<'static> {
2524 lexicon_doc_app_bsky_actor_defs()
2525 }
2526 fn validate(&self) -> Result<(), ConstraintError> {
2527 Ok(())
2528 }
2529}
2530
2531fn _default_adult_content_pref_enabled() -> bool {
2532 false
2533}
2534
2535impl Default for AdultContentPref<'_> {
2536 fn default() -> Self {
2537 Self {
2538 enabled: false,
2539 extra_data: Default::default(),
2540 }
2541 }
2542}
2543
2544pub mod adult_content_pref_state {
2545
2546 pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
2547 #[allow(unused)]
2548 use ::core::marker::PhantomData;
2549 mod sealed {
2550 pub trait Sealed {}
2551 }
2552 pub trait State: sealed::Sealed {
2554 type Enabled;
2555 }
2556 pub struct Empty(());
2558 impl sealed::Sealed for Empty {}
2559 impl State for Empty {
2560 type Enabled = Unset;
2561 }
2562 pub struct SetEnabled<S: State = Empty>(PhantomData<fn() -> S>);
2564 impl<S: State> sealed::Sealed for SetEnabled<S> {}
2565 impl<S: State> State for SetEnabled<S> {
2566 type Enabled = Set<members::enabled>;
2567 }
2568 #[allow(non_camel_case_types)]
2570 pub mod members {
2571 pub struct enabled(());
2573 }
2574}
2575
2576pub struct AdultContentPrefBuilder<'a, S: adult_content_pref_state::State> {
2578 _state: PhantomData<fn() -> S>,
2579 _fields: (Option<bool>,),
2580 _lifetime: PhantomData<&'a ()>,
2581}
2582
2583impl<'a> AdultContentPref<'a> {
2584 pub fn new() -> AdultContentPrefBuilder<'a, adult_content_pref_state::Empty> {
2586 AdultContentPrefBuilder::new()
2587 }
2588}
2589
2590impl<'a> AdultContentPrefBuilder<'a, adult_content_pref_state::Empty> {
2591 pub fn new() -> Self {
2593 AdultContentPrefBuilder {
2594 _state: PhantomData,
2595 _fields: (None,),
2596 _lifetime: PhantomData,
2597 }
2598 }
2599}
2600
2601impl<'a, S> AdultContentPrefBuilder<'a, S>
2602where
2603 S: adult_content_pref_state::State,
2604 S::Enabled: adult_content_pref_state::IsUnset,
2605{
2606 pub fn enabled(
2608 mut self,
2609 value: impl Into<bool>,
2610 ) -> AdultContentPrefBuilder<'a, adult_content_pref_state::SetEnabled<S>> {
2611 self._fields.0 = Option::Some(value.into());
2612 AdultContentPrefBuilder {
2613 _state: PhantomData,
2614 _fields: self._fields,
2615 _lifetime: PhantomData,
2616 }
2617 }
2618}
2619
2620impl<'a, S> AdultContentPrefBuilder<'a, S>
2621where
2622 S: adult_content_pref_state::State,
2623 S::Enabled: adult_content_pref_state::IsSet,
2624{
2625 pub fn build(self) -> AdultContentPref<'a> {
2627 AdultContentPref {
2628 enabled: self._fields.0.unwrap(),
2629 extra_data: Default::default(),
2630 }
2631 }
2632 pub fn build_with_data(
2634 self,
2635 extra_data: BTreeMap<jacquard_common::deps::smol_str::SmolStr, Data<'a>>,
2636 ) -> AdultContentPref<'a> {
2637 AdultContentPref {
2638 enabled: self._fields.0.unwrap(),
2639 extra_data: Some(extra_data),
2640 }
2641 }
2642}
2643
2644fn lexicon_doc_app_bsky_actor_defs() -> LexiconDoc<'static> {
2645 #[allow(unused_imports)]
2646 use jacquard_common::{CowStr, deps::smol_str::SmolStr, types::blob::MimeType};
2647 use jacquard_lexicon::lexicon::*;
2648 use alloc::collections::BTreeMap;
2649 LexiconDoc {
2650 lexicon: Lexicon::Lexicon1,
2651 id: CowStr::new_static("app.bsky.actor.defs"),
2652 defs: {
2653 let mut map = BTreeMap::new();
2654 map.insert(
2655 SmolStr::new_static("adultContentPref"),
2656 LexUserType::Object(LexObject {
2657 required: Some(vec![SmolStr::new_static("enabled")]),
2658 properties: {
2659 #[allow(unused_mut)]
2660 let mut map = BTreeMap::new();
2661 map.insert(
2662 SmolStr::new_static("enabled"),
2663 LexObjectProperty::Boolean(LexBoolean {
2664 ..Default::default()
2665 }),
2666 );
2667 map
2668 },
2669 ..Default::default()
2670 }),
2671 );
2672 map.insert(
2673 SmolStr::new_static("bskyAppProgressGuide"),
2674 LexUserType::Object(LexObject {
2675 description: Some(
2676 CowStr::new_static(
2677 "If set, an active progress guide. Once completed, can be set to undefined. Should have unspecced fields tracking progress.",
2678 ),
2679 ),
2680 required: Some(vec![SmolStr::new_static("guide")]),
2681 properties: {
2682 #[allow(unused_mut)]
2683 let mut map = BTreeMap::new();
2684 map.insert(
2685 SmolStr::new_static("guide"),
2686 LexObjectProperty::String(LexString {
2687 max_length: Some(100usize),
2688 ..Default::default()
2689 }),
2690 );
2691 map
2692 },
2693 ..Default::default()
2694 }),
2695 );
2696 map.insert(
2697 SmolStr::new_static("bskyAppStatePref"),
2698 LexUserType::Object(LexObject {
2699 description: Some(
2700 CowStr::new_static(
2701 "A grab bag of state that's specific to the bsky.app program. Third-party apps shouldn't use this.",
2702 ),
2703 ),
2704 properties: {
2705 #[allow(unused_mut)]
2706 let mut map = BTreeMap::new();
2707 map.insert(
2708 SmolStr::new_static("activeProgressGuide"),
2709 LexObjectProperty::Ref(LexRef {
2710 r#ref: CowStr::new_static("#bskyAppProgressGuide"),
2711 ..Default::default()
2712 }),
2713 );
2714 map.insert(
2715 SmolStr::new_static("nuxs"),
2716 LexObjectProperty::Array(LexArray {
2717 description: Some(
2718 CowStr::new_static(
2719 "Storage for NUXs the user has encountered.",
2720 ),
2721 ),
2722 items: LexArrayItem::Ref(LexRef {
2723 r#ref: CowStr::new_static("app.bsky.actor.defs#nux"),
2724 ..Default::default()
2725 }),
2726 max_length: Some(100usize),
2727 ..Default::default()
2728 }),
2729 );
2730 map.insert(
2731 SmolStr::new_static("queuedNudges"),
2732 LexObjectProperty::Array(LexArray {
2733 description: Some(
2734 CowStr::new_static(
2735 "An array of tokens which identify nudges (modals, popups, tours, highlight dots) that should be shown to the user.",
2736 ),
2737 ),
2738 items: LexArrayItem::String(LexString {
2739 max_length: Some(100usize),
2740 ..Default::default()
2741 }),
2742 max_length: Some(1000usize),
2743 ..Default::default()
2744 }),
2745 );
2746 map
2747 },
2748 ..Default::default()
2749 }),
2750 );
2751 map.insert(
2752 SmolStr::new_static("contentLabelPref"),
2753 LexUserType::Object(LexObject {
2754 required: Some(
2755 vec![
2756 SmolStr::new_static("label"),
2757 SmolStr::new_static("visibility")
2758 ],
2759 ),
2760 properties: {
2761 #[allow(unused_mut)]
2762 let mut map = BTreeMap::new();
2763 map.insert(
2764 SmolStr::new_static("label"),
2765 LexObjectProperty::String(LexString { ..Default::default() }),
2766 );
2767 map.insert(
2768 SmolStr::new_static("labelerDid"),
2769 LexObjectProperty::String(LexString {
2770 description: Some(
2771 CowStr::new_static(
2772 "Which labeler does this preference apply to? If undefined, applies globally.",
2773 ),
2774 ),
2775 format: Some(LexStringFormat::Did),
2776 ..Default::default()
2777 }),
2778 );
2779 map.insert(
2780 SmolStr::new_static("visibility"),
2781 LexObjectProperty::String(LexString { ..Default::default() }),
2782 );
2783 map
2784 },
2785 ..Default::default()
2786 }),
2787 );
2788 map.insert(
2789 SmolStr::new_static("declaredAgePref"),
2790 LexUserType::Object(LexObject {
2791 description: Some(
2792 CowStr::new_static(
2793 "Read-only preference containing value(s) inferred from the user's declared birthdate. Absence of this preference object in the response indicates that the user has not made a declaration.",
2794 ),
2795 ),
2796 properties: {
2797 #[allow(unused_mut)]
2798 let mut map = BTreeMap::new();
2799 map.insert(
2800 SmolStr::new_static("isOverAge13"),
2801 LexObjectProperty::Boolean(LexBoolean {
2802 ..Default::default()
2803 }),
2804 );
2805 map.insert(
2806 SmolStr::new_static("isOverAge16"),
2807 LexObjectProperty::Boolean(LexBoolean {
2808 ..Default::default()
2809 }),
2810 );
2811 map.insert(
2812 SmolStr::new_static("isOverAge18"),
2813 LexObjectProperty::Boolean(LexBoolean {
2814 ..Default::default()
2815 }),
2816 );
2817 map
2818 },
2819 ..Default::default()
2820 }),
2821 );
2822 map.insert(
2823 SmolStr::new_static("feedViewPref"),
2824 LexUserType::Object(LexObject {
2825 required: Some(vec![SmolStr::new_static("feed")]),
2826 properties: {
2827 #[allow(unused_mut)]
2828 let mut map = BTreeMap::new();
2829 map.insert(
2830 SmolStr::new_static("feed"),
2831 LexObjectProperty::String(LexString {
2832 description: Some(
2833 CowStr::new_static(
2834 "The URI of the feed, or an identifier which describes the feed.",
2835 ),
2836 ),
2837 ..Default::default()
2838 }),
2839 );
2840 map.insert(
2841 SmolStr::new_static("hideQuotePosts"),
2842 LexObjectProperty::Boolean(LexBoolean {
2843 ..Default::default()
2844 }),
2845 );
2846 map.insert(
2847 SmolStr::new_static("hideReplies"),
2848 LexObjectProperty::Boolean(LexBoolean {
2849 ..Default::default()
2850 }),
2851 );
2852 map.insert(
2853 SmolStr::new_static("hideRepliesByLikeCount"),
2854 LexObjectProperty::Integer(LexInteger {
2855 ..Default::default()
2856 }),
2857 );
2858 map.insert(
2859 SmolStr::new_static("hideRepliesByUnfollowed"),
2860 LexObjectProperty::Boolean(LexBoolean {
2861 ..Default::default()
2862 }),
2863 );
2864 map.insert(
2865 SmolStr::new_static("hideReposts"),
2866 LexObjectProperty::Boolean(LexBoolean {
2867 ..Default::default()
2868 }),
2869 );
2870 map
2871 },
2872 ..Default::default()
2873 }),
2874 );
2875 map.insert(
2876 SmolStr::new_static("hiddenPostsPref"),
2877 LexUserType::Object(LexObject {
2878 required: Some(vec![SmolStr::new_static("items")]),
2879 properties: {
2880 #[allow(unused_mut)]
2881 let mut map = BTreeMap::new();
2882 map.insert(
2883 SmolStr::new_static("items"),
2884 LexObjectProperty::Array(LexArray {
2885 description: Some(
2886 CowStr::new_static(
2887 "A list of URIs of posts the account owner has hidden.",
2888 ),
2889 ),
2890 items: LexArrayItem::String(LexString {
2891 format: Some(LexStringFormat::AtUri),
2892 ..Default::default()
2893 }),
2894 ..Default::default()
2895 }),
2896 );
2897 map
2898 },
2899 ..Default::default()
2900 }),
2901 );
2902 map.insert(
2903 SmolStr::new_static("interestsPref"),
2904 LexUserType::Object(LexObject {
2905 required: Some(vec![SmolStr::new_static("tags")]),
2906 properties: {
2907 #[allow(unused_mut)]
2908 let mut map = BTreeMap::new();
2909 map.insert(
2910 SmolStr::new_static("tags"),
2911 LexObjectProperty::Array(LexArray {
2912 description: Some(
2913 CowStr::new_static(
2914 "A list of tags which describe the account owner's interests gathered during onboarding.",
2915 ),
2916 ),
2917 items: LexArrayItem::String(LexString {
2918 max_length: Some(640usize),
2919 max_graphemes: Some(64usize),
2920 ..Default::default()
2921 }),
2922 max_length: Some(100usize),
2923 ..Default::default()
2924 }),
2925 );
2926 map
2927 },
2928 ..Default::default()
2929 }),
2930 );
2931 map.insert(
2932 SmolStr::new_static("knownFollowers"),
2933 LexUserType::Object(LexObject {
2934 description: Some(
2935 CowStr::new_static(
2936 "The subject's followers whom you also follow",
2937 ),
2938 ),
2939 required: Some(
2940 vec![
2941 SmolStr::new_static("count"),
2942 SmolStr::new_static("followers")
2943 ],
2944 ),
2945 properties: {
2946 #[allow(unused_mut)]
2947 let mut map = BTreeMap::new();
2948 map.insert(
2949 SmolStr::new_static("count"),
2950 LexObjectProperty::Integer(LexInteger {
2951 ..Default::default()
2952 }),
2953 );
2954 map.insert(
2955 SmolStr::new_static("followers"),
2956 LexObjectProperty::Array(LexArray {
2957 items: LexArrayItem::Ref(LexRef {
2958 r#ref: CowStr::new_static("#profileViewBasic"),
2959 ..Default::default()
2960 }),
2961 min_length: Some(0usize),
2962 max_length: Some(5usize),
2963 ..Default::default()
2964 }),
2965 );
2966 map
2967 },
2968 ..Default::default()
2969 }),
2970 );
2971 map.insert(
2972 SmolStr::new_static("labelerPrefItem"),
2973 LexUserType::Object(LexObject {
2974 required: Some(vec![SmolStr::new_static("did")]),
2975 properties: {
2976 #[allow(unused_mut)]
2977 let mut map = BTreeMap::new();
2978 map.insert(
2979 SmolStr::new_static("did"),
2980 LexObjectProperty::String(LexString {
2981 format: Some(LexStringFormat::Did),
2982 ..Default::default()
2983 }),
2984 );
2985 map
2986 },
2987 ..Default::default()
2988 }),
2989 );
2990 map.insert(
2991 SmolStr::new_static("labelersPref"),
2992 LexUserType::Object(LexObject {
2993 required: Some(vec![SmolStr::new_static("labelers")]),
2994 properties: {
2995 #[allow(unused_mut)]
2996 let mut map = BTreeMap::new();
2997 map.insert(
2998 SmolStr::new_static("labelers"),
2999 LexObjectProperty::Array(LexArray {
3000 items: LexArrayItem::Ref(LexRef {
3001 r#ref: CowStr::new_static("#labelerPrefItem"),
3002 ..Default::default()
3003 }),
3004 ..Default::default()
3005 }),
3006 );
3007 map
3008 },
3009 ..Default::default()
3010 }),
3011 );
3012 map.insert(
3013 SmolStr::new_static("liveEventPreferences"),
3014 LexUserType::Object(LexObject {
3015 description: Some(
3016 CowStr::new_static("Preferences for live events."),
3017 ),
3018 properties: {
3019 #[allow(unused_mut)]
3020 let mut map = BTreeMap::new();
3021 map.insert(
3022 SmolStr::new_static("hiddenFeedIds"),
3023 LexObjectProperty::Array(LexArray {
3024 description: Some(
3025 CowStr::new_static(
3026 "A list of feed IDs that the user has hidden from live events.",
3027 ),
3028 ),
3029 items: LexArrayItem::String(LexString {
3030 ..Default::default()
3031 }),
3032 ..Default::default()
3033 }),
3034 );
3035 map.insert(
3036 SmolStr::new_static("hideAllFeeds"),
3037 LexObjectProperty::Boolean(LexBoolean {
3038 ..Default::default()
3039 }),
3040 );
3041 map
3042 },
3043 ..Default::default()
3044 }),
3045 );
3046 map.insert(
3047 SmolStr::new_static("mutedWord"),
3048 LexUserType::Object(LexObject {
3049 description: Some(
3050 CowStr::new_static("A word that the account owner has muted."),
3051 ),
3052 required: Some(
3053 vec![
3054 SmolStr::new_static("value"), SmolStr::new_static("targets")
3055 ],
3056 ),
3057 properties: {
3058 #[allow(unused_mut)]
3059 let mut map = BTreeMap::new();
3060 map.insert(
3061 SmolStr::new_static("actorTarget"),
3062 LexObjectProperty::String(LexString {
3063 description: Some(
3064 CowStr::new_static(
3065 "Groups of users to apply the muted word to. If undefined, applies to all users.",
3066 ),
3067 ),
3068 ..Default::default()
3069 }),
3070 );
3071 map.insert(
3072 SmolStr::new_static("expiresAt"),
3073 LexObjectProperty::String(LexString {
3074 description: Some(
3075 CowStr::new_static(
3076 "The date and time at which the muted word will expire and no longer be applied.",
3077 ),
3078 ),
3079 format: Some(LexStringFormat::Datetime),
3080 ..Default::default()
3081 }),
3082 );
3083 map.insert(
3084 SmolStr::new_static("id"),
3085 LexObjectProperty::String(LexString { ..Default::default() }),
3086 );
3087 map.insert(
3088 SmolStr::new_static("targets"),
3089 LexObjectProperty::Array(LexArray {
3090 description: Some(
3091 CowStr::new_static(
3092 "The intended targets of the muted word.",
3093 ),
3094 ),
3095 items: LexArrayItem::Ref(LexRef {
3096 r#ref: CowStr::new_static(
3097 "app.bsky.actor.defs#mutedWordTarget",
3098 ),
3099 ..Default::default()
3100 }),
3101 ..Default::default()
3102 }),
3103 );
3104 map.insert(
3105 SmolStr::new_static("value"),
3106 LexObjectProperty::String(LexString {
3107 description: Some(
3108 CowStr::new_static("The muted word itself."),
3109 ),
3110 max_length: Some(10000usize),
3111 max_graphemes: Some(1000usize),
3112 ..Default::default()
3113 }),
3114 );
3115 map
3116 },
3117 ..Default::default()
3118 }),
3119 );
3120 map.insert(
3121 SmolStr::new_static("mutedWordTarget"),
3122 LexUserType::String(LexString {
3123 max_length: Some(640usize),
3124 max_graphemes: Some(64usize),
3125 ..Default::default()
3126 }),
3127 );
3128 map.insert(
3129 SmolStr::new_static("mutedWordsPref"),
3130 LexUserType::Object(LexObject {
3131 required: Some(vec![SmolStr::new_static("items")]),
3132 properties: {
3133 #[allow(unused_mut)]
3134 let mut map = BTreeMap::new();
3135 map.insert(
3136 SmolStr::new_static("items"),
3137 LexObjectProperty::Array(LexArray {
3138 description: Some(
3139 CowStr::new_static(
3140 "A list of words the account owner has muted.",
3141 ),
3142 ),
3143 items: LexArrayItem::Ref(LexRef {
3144 r#ref: CowStr::new_static("app.bsky.actor.defs#mutedWord"),
3145 ..Default::default()
3146 }),
3147 ..Default::default()
3148 }),
3149 );
3150 map
3151 },
3152 ..Default::default()
3153 }),
3154 );
3155 map.insert(
3156 SmolStr::new_static("nux"),
3157 LexUserType::Object(LexObject {
3158 description: Some(
3159 CowStr::new_static("A new user experiences (NUX) storage object"),
3160 ),
3161 required: Some(
3162 vec![SmolStr::new_static("id"), SmolStr::new_static("completed")],
3163 ),
3164 properties: {
3165 #[allow(unused_mut)]
3166 let mut map = BTreeMap::new();
3167 map.insert(
3168 SmolStr::new_static("completed"),
3169 LexObjectProperty::Boolean(LexBoolean {
3170 ..Default::default()
3171 }),
3172 );
3173 map.insert(
3174 SmolStr::new_static("data"),
3175 LexObjectProperty::String(LexString {
3176 description: Some(
3177 CowStr::new_static(
3178 "Arbitrary data for the NUX. The structure is defined by the NUX itself. Limited to 300 characters.",
3179 ),
3180 ),
3181 max_length: Some(3000usize),
3182 max_graphemes: Some(300usize),
3183 ..Default::default()
3184 }),
3185 );
3186 map.insert(
3187 SmolStr::new_static("expiresAt"),
3188 LexObjectProperty::String(LexString {
3189 description: Some(
3190 CowStr::new_static(
3191 "The date and time at which the NUX will expire and should be considered completed.",
3192 ),
3193 ),
3194 format: Some(LexStringFormat::Datetime),
3195 ..Default::default()
3196 }),
3197 );
3198 map.insert(
3199 SmolStr::new_static("id"),
3200 LexObjectProperty::String(LexString {
3201 max_length: Some(100usize),
3202 ..Default::default()
3203 }),
3204 );
3205 map
3206 },
3207 ..Default::default()
3208 }),
3209 );
3210 map.insert(
3211 SmolStr::new_static("personalDetailsPref"),
3212 LexUserType::Object(LexObject {
3213 properties: {
3214 #[allow(unused_mut)]
3215 let mut map = BTreeMap::new();
3216 map.insert(
3217 SmolStr::new_static("birthDate"),
3218 LexObjectProperty::String(LexString {
3219 description: Some(
3220 CowStr::new_static("The birth date of account owner."),
3221 ),
3222 format: Some(LexStringFormat::Datetime),
3223 ..Default::default()
3224 }),
3225 );
3226 map
3227 },
3228 ..Default::default()
3229 }),
3230 );
3231 map.insert(
3232 SmolStr::new_static("postInteractionSettingsPref"),
3233 LexUserType::Object(LexObject {
3234 description: Some(
3235 CowStr::new_static(
3236 "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.",
3237 ),
3238 ),
3239 required: Some(vec![]),
3240 properties: {
3241 #[allow(unused_mut)]
3242 let mut map = BTreeMap::new();
3243 map.insert(
3244 SmolStr::new_static("postgateEmbeddingRules"),
3245 LexObjectProperty::Array(LexArray {
3246 description: Some(
3247 CowStr::new_static(
3248 "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.",
3249 ),
3250 ),
3251 items: LexArrayItem::Union(LexRefUnion {
3252 refs: vec![
3253 CowStr::new_static("app.bsky.feed.postgate#disableRule")
3254 ],
3255 ..Default::default()
3256 }),
3257 max_length: Some(5usize),
3258 ..Default::default()
3259 }),
3260 );
3261 map.insert(
3262 SmolStr::new_static("threadgateAllowRules"),
3263 LexObjectProperty::Array(LexArray {
3264 description: Some(
3265 CowStr::new_static(
3266 "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.",
3267 ),
3268 ),
3269 items: LexArrayItem::Union(LexRefUnion {
3270 refs: vec![
3271 CowStr::new_static("app.bsky.feed.threadgate#mentionRule"),
3272 CowStr::new_static("app.bsky.feed.threadgate#followerRule"),
3273 CowStr::new_static("app.bsky.feed.threadgate#followingRule"),
3274 CowStr::new_static("app.bsky.feed.threadgate#listRule")
3275 ],
3276 ..Default::default()
3277 }),
3278 max_length: Some(5usize),
3279 ..Default::default()
3280 }),
3281 );
3282 map
3283 },
3284 ..Default::default()
3285 }),
3286 );
3287 map.insert(
3288 SmolStr::new_static("preferences"),
3289 LexUserType::Array(LexArray {
3290 items: LexArrayItem::Union(LexRefUnion {
3291 refs: vec![
3292 CowStr::new_static("#adultContentPref"),
3293 CowStr::new_static("#contentLabelPref"),
3294 CowStr::new_static("#savedFeedsPref"),
3295 CowStr::new_static("#savedFeedsPrefV2"),
3296 CowStr::new_static("#personalDetailsPref"),
3297 CowStr::new_static("#declaredAgePref"),
3298 CowStr::new_static("#feedViewPref"),
3299 CowStr::new_static("#threadViewPref"),
3300 CowStr::new_static("#interestsPref"),
3301 CowStr::new_static("#mutedWordsPref"),
3302 CowStr::new_static("#hiddenPostsPref"),
3303 CowStr::new_static("#bskyAppStatePref"),
3304 CowStr::new_static("#labelersPref"),
3305 CowStr::new_static("#postInteractionSettingsPref"),
3306 CowStr::new_static("#verificationPrefs"),
3307 CowStr::new_static("#liveEventPreferences")
3308 ],
3309 ..Default::default()
3310 }),
3311 ..Default::default()
3312 }),
3313 );
3314 map.insert(
3315 SmolStr::new_static("profileAssociated"),
3316 LexUserType::Object(LexObject {
3317 properties: {
3318 #[allow(unused_mut)]
3319 let mut map = BTreeMap::new();
3320 map.insert(
3321 SmolStr::new_static("activitySubscription"),
3322 LexObjectProperty::Ref(LexRef {
3323 r#ref: CowStr::new_static(
3324 "#profileAssociatedActivitySubscription",
3325 ),
3326 ..Default::default()
3327 }),
3328 );
3329 map.insert(
3330 SmolStr::new_static("chat"),
3331 LexObjectProperty::Ref(LexRef {
3332 r#ref: CowStr::new_static("#profileAssociatedChat"),
3333 ..Default::default()
3334 }),
3335 );
3336 map.insert(
3337 SmolStr::new_static("feedgens"),
3338 LexObjectProperty::Integer(LexInteger {
3339 ..Default::default()
3340 }),
3341 );
3342 map.insert(
3343 SmolStr::new_static("germ"),
3344 LexObjectProperty::Ref(LexRef {
3345 r#ref: CowStr::new_static("#profileAssociatedGerm"),
3346 ..Default::default()
3347 }),
3348 );
3349 map.insert(
3350 SmolStr::new_static("labeler"),
3351 LexObjectProperty::Boolean(LexBoolean {
3352 ..Default::default()
3353 }),
3354 );
3355 map.insert(
3356 SmolStr::new_static("lists"),
3357 LexObjectProperty::Integer(LexInteger {
3358 ..Default::default()
3359 }),
3360 );
3361 map.insert(
3362 SmolStr::new_static("starterPacks"),
3363 LexObjectProperty::Integer(LexInteger {
3364 ..Default::default()
3365 }),
3366 );
3367 map
3368 },
3369 ..Default::default()
3370 }),
3371 );
3372 map.insert(
3373 SmolStr::new_static("profileAssociatedActivitySubscription"),
3374 LexUserType::Object(LexObject {
3375 required: Some(vec![SmolStr::new_static("allowSubscriptions")]),
3376 properties: {
3377 #[allow(unused_mut)]
3378 let mut map = BTreeMap::new();
3379 map.insert(
3380 SmolStr::new_static("allowSubscriptions"),
3381 LexObjectProperty::String(LexString { ..Default::default() }),
3382 );
3383 map
3384 },
3385 ..Default::default()
3386 }),
3387 );
3388 map.insert(
3389 SmolStr::new_static("profileAssociatedChat"),
3390 LexUserType::Object(LexObject {
3391 required: Some(vec![SmolStr::new_static("allowIncoming")]),
3392 properties: {
3393 #[allow(unused_mut)]
3394 let mut map = BTreeMap::new();
3395 map.insert(
3396 SmolStr::new_static("allowIncoming"),
3397 LexObjectProperty::String(LexString { ..Default::default() }),
3398 );
3399 map
3400 },
3401 ..Default::default()
3402 }),
3403 );
3404 map.insert(
3405 SmolStr::new_static("profileAssociatedGerm"),
3406 LexUserType::Object(LexObject {
3407 required: Some(
3408 vec![
3409 SmolStr::new_static("showButtonTo"),
3410 SmolStr::new_static("messageMeUrl")
3411 ],
3412 ),
3413 properties: {
3414 #[allow(unused_mut)]
3415 let mut map = BTreeMap::new();
3416 map.insert(
3417 SmolStr::new_static("messageMeUrl"),
3418 LexObjectProperty::String(LexString {
3419 format: Some(LexStringFormat::Uri),
3420 ..Default::default()
3421 }),
3422 );
3423 map.insert(
3424 SmolStr::new_static("showButtonTo"),
3425 LexObjectProperty::String(LexString { ..Default::default() }),
3426 );
3427 map
3428 },
3429 ..Default::default()
3430 }),
3431 );
3432 map.insert(
3433 SmolStr::new_static("profileView"),
3434 LexUserType::Object(LexObject {
3435 required: Some(
3436 vec![SmolStr::new_static("did"), SmolStr::new_static("handle")],
3437 ),
3438 properties: {
3439 #[allow(unused_mut)]
3440 let mut map = BTreeMap::new();
3441 map.insert(
3442 SmolStr::new_static("associated"),
3443 LexObjectProperty::Ref(LexRef {
3444 r#ref: CowStr::new_static("#profileAssociated"),
3445 ..Default::default()
3446 }),
3447 );
3448 map.insert(
3449 SmolStr::new_static("avatar"),
3450 LexObjectProperty::String(LexString {
3451 format: Some(LexStringFormat::Uri),
3452 ..Default::default()
3453 }),
3454 );
3455 map.insert(
3456 SmolStr::new_static("createdAt"),
3457 LexObjectProperty::String(LexString {
3458 format: Some(LexStringFormat::Datetime),
3459 ..Default::default()
3460 }),
3461 );
3462 map.insert(
3463 SmolStr::new_static("debug"),
3464 LexObjectProperty::Unknown(LexUnknown {
3465 ..Default::default()
3466 }),
3467 );
3468 map.insert(
3469 SmolStr::new_static("description"),
3470 LexObjectProperty::String(LexString {
3471 max_length: Some(2560usize),
3472 max_graphemes: Some(256usize),
3473 ..Default::default()
3474 }),
3475 );
3476 map.insert(
3477 SmolStr::new_static("did"),
3478 LexObjectProperty::String(LexString {
3479 format: Some(LexStringFormat::Did),
3480 ..Default::default()
3481 }),
3482 );
3483 map.insert(
3484 SmolStr::new_static("displayName"),
3485 LexObjectProperty::String(LexString {
3486 max_length: Some(640usize),
3487 max_graphemes: Some(64usize),
3488 ..Default::default()
3489 }),
3490 );
3491 map.insert(
3492 SmolStr::new_static("handle"),
3493 LexObjectProperty::String(LexString {
3494 format: Some(LexStringFormat::Handle),
3495 ..Default::default()
3496 }),
3497 );
3498 map.insert(
3499 SmolStr::new_static("indexedAt"),
3500 LexObjectProperty::String(LexString {
3501 format: Some(LexStringFormat::Datetime),
3502 ..Default::default()
3503 }),
3504 );
3505 map.insert(
3506 SmolStr::new_static("labels"),
3507 LexObjectProperty::Array(LexArray {
3508 items: LexArrayItem::Ref(LexRef {
3509 r#ref: CowStr::new_static("com.atproto.label.defs#label"),
3510 ..Default::default()
3511 }),
3512 ..Default::default()
3513 }),
3514 );
3515 map.insert(
3516 SmolStr::new_static("pronouns"),
3517 LexObjectProperty::String(LexString { ..Default::default() }),
3518 );
3519 map.insert(
3520 SmolStr::new_static("status"),
3521 LexObjectProperty::Ref(LexRef {
3522 r#ref: CowStr::new_static("#statusView"),
3523 ..Default::default()
3524 }),
3525 );
3526 map.insert(
3527 SmolStr::new_static("verification"),
3528 LexObjectProperty::Ref(LexRef {
3529 r#ref: CowStr::new_static("#verificationState"),
3530 ..Default::default()
3531 }),
3532 );
3533 map.insert(
3534 SmolStr::new_static("viewer"),
3535 LexObjectProperty::Ref(LexRef {
3536 r#ref: CowStr::new_static("#viewerState"),
3537 ..Default::default()
3538 }),
3539 );
3540 map
3541 },
3542 ..Default::default()
3543 }),
3544 );
3545 map.insert(
3546 SmolStr::new_static("profileViewBasic"),
3547 LexUserType::Object(LexObject {
3548 required: Some(
3549 vec![SmolStr::new_static("did"), SmolStr::new_static("handle")],
3550 ),
3551 properties: {
3552 #[allow(unused_mut)]
3553 let mut map = BTreeMap::new();
3554 map.insert(
3555 SmolStr::new_static("associated"),
3556 LexObjectProperty::Ref(LexRef {
3557 r#ref: CowStr::new_static("#profileAssociated"),
3558 ..Default::default()
3559 }),
3560 );
3561 map.insert(
3562 SmolStr::new_static("avatar"),
3563 LexObjectProperty::String(LexString {
3564 format: Some(LexStringFormat::Uri),
3565 ..Default::default()
3566 }),
3567 );
3568 map.insert(
3569 SmolStr::new_static("createdAt"),
3570 LexObjectProperty::String(LexString {
3571 format: Some(LexStringFormat::Datetime),
3572 ..Default::default()
3573 }),
3574 );
3575 map.insert(
3576 SmolStr::new_static("debug"),
3577 LexObjectProperty::Unknown(LexUnknown {
3578 ..Default::default()
3579 }),
3580 );
3581 map.insert(
3582 SmolStr::new_static("did"),
3583 LexObjectProperty::String(LexString {
3584 format: Some(LexStringFormat::Did),
3585 ..Default::default()
3586 }),
3587 );
3588 map.insert(
3589 SmolStr::new_static("displayName"),
3590 LexObjectProperty::String(LexString {
3591 max_length: Some(640usize),
3592 max_graphemes: Some(64usize),
3593 ..Default::default()
3594 }),
3595 );
3596 map.insert(
3597 SmolStr::new_static("handle"),
3598 LexObjectProperty::String(LexString {
3599 format: Some(LexStringFormat::Handle),
3600 ..Default::default()
3601 }),
3602 );
3603 map.insert(
3604 SmolStr::new_static("labels"),
3605 LexObjectProperty::Array(LexArray {
3606 items: LexArrayItem::Ref(LexRef {
3607 r#ref: CowStr::new_static("com.atproto.label.defs#label"),
3608 ..Default::default()
3609 }),
3610 ..Default::default()
3611 }),
3612 );
3613 map.insert(
3614 SmolStr::new_static("pronouns"),
3615 LexObjectProperty::String(LexString { ..Default::default() }),
3616 );
3617 map.insert(
3618 SmolStr::new_static("status"),
3619 LexObjectProperty::Ref(LexRef {
3620 r#ref: CowStr::new_static("#statusView"),
3621 ..Default::default()
3622 }),
3623 );
3624 map.insert(
3625 SmolStr::new_static("verification"),
3626 LexObjectProperty::Ref(LexRef {
3627 r#ref: CowStr::new_static("#verificationState"),
3628 ..Default::default()
3629 }),
3630 );
3631 map.insert(
3632 SmolStr::new_static("viewer"),
3633 LexObjectProperty::Ref(LexRef {
3634 r#ref: CowStr::new_static("#viewerState"),
3635 ..Default::default()
3636 }),
3637 );
3638 map
3639 },
3640 ..Default::default()
3641 }),
3642 );
3643 map.insert(
3644 SmolStr::new_static("profileViewDetailed"),
3645 LexUserType::Object(LexObject {
3646 required: Some(
3647 vec![SmolStr::new_static("did"), SmolStr::new_static("handle")],
3648 ),
3649 properties: {
3650 #[allow(unused_mut)]
3651 let mut map = BTreeMap::new();
3652 map.insert(
3653 SmolStr::new_static("associated"),
3654 LexObjectProperty::Ref(LexRef {
3655 r#ref: CowStr::new_static("#profileAssociated"),
3656 ..Default::default()
3657 }),
3658 );
3659 map.insert(
3660 SmolStr::new_static("avatar"),
3661 LexObjectProperty::String(LexString {
3662 format: Some(LexStringFormat::Uri),
3663 ..Default::default()
3664 }),
3665 );
3666 map.insert(
3667 SmolStr::new_static("banner"),
3668 LexObjectProperty::String(LexString {
3669 format: Some(LexStringFormat::Uri),
3670 ..Default::default()
3671 }),
3672 );
3673 map.insert(
3674 SmolStr::new_static("createdAt"),
3675 LexObjectProperty::String(LexString {
3676 format: Some(LexStringFormat::Datetime),
3677 ..Default::default()
3678 }),
3679 );
3680 map.insert(
3681 SmolStr::new_static("debug"),
3682 LexObjectProperty::Unknown(LexUnknown {
3683 ..Default::default()
3684 }),
3685 );
3686 map.insert(
3687 SmolStr::new_static("description"),
3688 LexObjectProperty::String(LexString {
3689 max_length: Some(2560usize),
3690 max_graphemes: Some(256usize),
3691 ..Default::default()
3692 }),
3693 );
3694 map.insert(
3695 SmolStr::new_static("did"),
3696 LexObjectProperty::String(LexString {
3697 format: Some(LexStringFormat::Did),
3698 ..Default::default()
3699 }),
3700 );
3701 map.insert(
3702 SmolStr::new_static("displayName"),
3703 LexObjectProperty::String(LexString {
3704 max_length: Some(640usize),
3705 max_graphemes: Some(64usize),
3706 ..Default::default()
3707 }),
3708 );
3709 map.insert(
3710 SmolStr::new_static("followersCount"),
3711 LexObjectProperty::Integer(LexInteger {
3712 ..Default::default()
3713 }),
3714 );
3715 map.insert(
3716 SmolStr::new_static("followsCount"),
3717 LexObjectProperty::Integer(LexInteger {
3718 ..Default::default()
3719 }),
3720 );
3721 map.insert(
3722 SmolStr::new_static("handle"),
3723 LexObjectProperty::String(LexString {
3724 format: Some(LexStringFormat::Handle),
3725 ..Default::default()
3726 }),
3727 );
3728 map.insert(
3729 SmolStr::new_static("indexedAt"),
3730 LexObjectProperty::String(LexString {
3731 format: Some(LexStringFormat::Datetime),
3732 ..Default::default()
3733 }),
3734 );
3735 map.insert(
3736 SmolStr::new_static("joinedViaStarterPack"),
3737 LexObjectProperty::Ref(LexRef {
3738 r#ref: CowStr::new_static(
3739 "app.bsky.graph.defs#starterPackViewBasic",
3740 ),
3741 ..Default::default()
3742 }),
3743 );
3744 map.insert(
3745 SmolStr::new_static("labels"),
3746 LexObjectProperty::Array(LexArray {
3747 items: LexArrayItem::Ref(LexRef {
3748 r#ref: CowStr::new_static("com.atproto.label.defs#label"),
3749 ..Default::default()
3750 }),
3751 ..Default::default()
3752 }),
3753 );
3754 map.insert(
3755 SmolStr::new_static("pinnedPost"),
3756 LexObjectProperty::Ref(LexRef {
3757 r#ref: CowStr::new_static("com.atproto.repo.strongRef"),
3758 ..Default::default()
3759 }),
3760 );
3761 map.insert(
3762 SmolStr::new_static("postsCount"),
3763 LexObjectProperty::Integer(LexInteger {
3764 ..Default::default()
3765 }),
3766 );
3767 map.insert(
3768 SmolStr::new_static("pronouns"),
3769 LexObjectProperty::String(LexString { ..Default::default() }),
3770 );
3771 map.insert(
3772 SmolStr::new_static("status"),
3773 LexObjectProperty::Ref(LexRef {
3774 r#ref: CowStr::new_static("#statusView"),
3775 ..Default::default()
3776 }),
3777 );
3778 map.insert(
3779 SmolStr::new_static("verification"),
3780 LexObjectProperty::Ref(LexRef {
3781 r#ref: CowStr::new_static("#verificationState"),
3782 ..Default::default()
3783 }),
3784 );
3785 map.insert(
3786 SmolStr::new_static("viewer"),
3787 LexObjectProperty::Ref(LexRef {
3788 r#ref: CowStr::new_static("#viewerState"),
3789 ..Default::default()
3790 }),
3791 );
3792 map.insert(
3793 SmolStr::new_static("website"),
3794 LexObjectProperty::String(LexString {
3795 format: Some(LexStringFormat::Uri),
3796 ..Default::default()
3797 }),
3798 );
3799 map
3800 },
3801 ..Default::default()
3802 }),
3803 );
3804 map.insert(
3805 SmolStr::new_static("savedFeed"),
3806 LexUserType::Object(LexObject {
3807 required: Some(
3808 vec![
3809 SmolStr::new_static("id"), SmolStr::new_static("type"),
3810 SmolStr::new_static("value"), SmolStr::new_static("pinned")
3811 ],
3812 ),
3813 properties: {
3814 #[allow(unused_mut)]
3815 let mut map = BTreeMap::new();
3816 map.insert(
3817 SmolStr::new_static("id"),
3818 LexObjectProperty::String(LexString { ..Default::default() }),
3819 );
3820 map.insert(
3821 SmolStr::new_static("pinned"),
3822 LexObjectProperty::Boolean(LexBoolean {
3823 ..Default::default()
3824 }),
3825 );
3826 map.insert(
3827 SmolStr::new_static("type"),
3828 LexObjectProperty::String(LexString { ..Default::default() }),
3829 );
3830 map.insert(
3831 SmolStr::new_static("value"),
3832 LexObjectProperty::String(LexString { ..Default::default() }),
3833 );
3834 map
3835 },
3836 ..Default::default()
3837 }),
3838 );
3839 map.insert(
3840 SmolStr::new_static("savedFeedsPref"),
3841 LexUserType::Object(LexObject {
3842 required: Some(
3843 vec![SmolStr::new_static("pinned"), SmolStr::new_static("saved")],
3844 ),
3845 properties: {
3846 #[allow(unused_mut)]
3847 let mut map = BTreeMap::new();
3848 map.insert(
3849 SmolStr::new_static("pinned"),
3850 LexObjectProperty::Array(LexArray {
3851 items: LexArrayItem::String(LexString {
3852 format: Some(LexStringFormat::AtUri),
3853 ..Default::default()
3854 }),
3855 ..Default::default()
3856 }),
3857 );
3858 map.insert(
3859 SmolStr::new_static("saved"),
3860 LexObjectProperty::Array(LexArray {
3861 items: LexArrayItem::String(LexString {
3862 format: Some(LexStringFormat::AtUri),
3863 ..Default::default()
3864 }),
3865 ..Default::default()
3866 }),
3867 );
3868 map.insert(
3869 SmolStr::new_static("timelineIndex"),
3870 LexObjectProperty::Integer(LexInteger {
3871 ..Default::default()
3872 }),
3873 );
3874 map
3875 },
3876 ..Default::default()
3877 }),
3878 );
3879 map.insert(
3880 SmolStr::new_static("savedFeedsPrefV2"),
3881 LexUserType::Object(LexObject {
3882 required: Some(vec![SmolStr::new_static("items")]),
3883 properties: {
3884 #[allow(unused_mut)]
3885 let mut map = BTreeMap::new();
3886 map.insert(
3887 SmolStr::new_static("items"),
3888 LexObjectProperty::Array(LexArray {
3889 items: LexArrayItem::Ref(LexRef {
3890 r#ref: CowStr::new_static("app.bsky.actor.defs#savedFeed"),
3891 ..Default::default()
3892 }),
3893 ..Default::default()
3894 }),
3895 );
3896 map
3897 },
3898 ..Default::default()
3899 }),
3900 );
3901 map.insert(
3902 SmolStr::new_static("statusView"),
3903 LexUserType::Object(LexObject {
3904 required: Some(
3905 vec![
3906 SmolStr::new_static("status"), SmolStr::new_static("record")
3907 ],
3908 ),
3909 properties: {
3910 #[allow(unused_mut)]
3911 let mut map = BTreeMap::new();
3912 map.insert(
3913 SmolStr::new_static("cid"),
3914 LexObjectProperty::String(LexString {
3915 format: Some(LexStringFormat::Cid),
3916 ..Default::default()
3917 }),
3918 );
3919 map.insert(
3920 SmolStr::new_static("embed"),
3921 LexObjectProperty::Union(LexRefUnion {
3922 description: Some(
3923 CowStr::new_static(
3924 "An optional embed associated with the status.",
3925 ),
3926 ),
3927 refs: vec![
3928 CowStr::new_static("app.bsky.embed.external#view")
3929 ],
3930 ..Default::default()
3931 }),
3932 );
3933 map.insert(
3934 SmolStr::new_static("expiresAt"),
3935 LexObjectProperty::String(LexString {
3936 description: Some(
3937 CowStr::new_static(
3938 "The date when this status will expire. The application might choose to no longer return the status after expiration.",
3939 ),
3940 ),
3941 format: Some(LexStringFormat::Datetime),
3942 ..Default::default()
3943 }),
3944 );
3945 map.insert(
3946 SmolStr::new_static("isActive"),
3947 LexObjectProperty::Boolean(LexBoolean {
3948 ..Default::default()
3949 }),
3950 );
3951 map.insert(
3952 SmolStr::new_static("isDisabled"),
3953 LexObjectProperty::Boolean(LexBoolean {
3954 ..Default::default()
3955 }),
3956 );
3957 map.insert(
3958 SmolStr::new_static("record"),
3959 LexObjectProperty::Unknown(LexUnknown {
3960 ..Default::default()
3961 }),
3962 );
3963 map.insert(
3964 SmolStr::new_static("status"),
3965 LexObjectProperty::String(LexString {
3966 description: Some(
3967 CowStr::new_static("The status for the account."),
3968 ),
3969 ..Default::default()
3970 }),
3971 );
3972 map.insert(
3973 SmolStr::new_static("uri"),
3974 LexObjectProperty::String(LexString {
3975 format: Some(LexStringFormat::AtUri),
3976 ..Default::default()
3977 }),
3978 );
3979 map
3980 },
3981 ..Default::default()
3982 }),
3983 );
3984 map.insert(
3985 SmolStr::new_static("threadViewPref"),
3986 LexUserType::Object(LexObject {
3987 properties: {
3988 #[allow(unused_mut)]
3989 let mut map = BTreeMap::new();
3990 map.insert(
3991 SmolStr::new_static("sort"),
3992 LexObjectProperty::String(LexString {
3993 description: Some(
3994 CowStr::new_static("Sorting mode for threads."),
3995 ),
3996 ..Default::default()
3997 }),
3998 );
3999 map
4000 },
4001 ..Default::default()
4002 }),
4003 );
4004 map.insert(
4005 SmolStr::new_static("verificationPrefs"),
4006 LexUserType::Object(LexObject {
4007 description: Some(
4008 CowStr::new_static(
4009 "Preferences for how verified accounts appear in the app.",
4010 ),
4011 ),
4012 required: Some(vec![]),
4013 properties: {
4014 #[allow(unused_mut)]
4015 let mut map = BTreeMap::new();
4016 map.insert(
4017 SmolStr::new_static("hideBadges"),
4018 LexObjectProperty::Boolean(LexBoolean {
4019 ..Default::default()
4020 }),
4021 );
4022 map
4023 },
4024 ..Default::default()
4025 }),
4026 );
4027 map.insert(
4028 SmolStr::new_static("verificationState"),
4029 LexUserType::Object(LexObject {
4030 description: Some(
4031 CowStr::new_static(
4032 "Represents the verification information about the user this object is attached to.",
4033 ),
4034 ),
4035 required: Some(
4036 vec![
4037 SmolStr::new_static("verifications"),
4038 SmolStr::new_static("verifiedStatus"),
4039 SmolStr::new_static("trustedVerifierStatus")
4040 ],
4041 ),
4042 properties: {
4043 #[allow(unused_mut)]
4044 let mut map = BTreeMap::new();
4045 map.insert(
4046 SmolStr::new_static("trustedVerifierStatus"),
4047 LexObjectProperty::String(LexString {
4048 description: Some(
4049 CowStr::new_static(
4050 "The user's status as a trusted verifier.",
4051 ),
4052 ),
4053 ..Default::default()
4054 }),
4055 );
4056 map.insert(
4057 SmolStr::new_static("verifications"),
4058 LexObjectProperty::Array(LexArray {
4059 description: Some(
4060 CowStr::new_static(
4061 "All verifications issued by trusted verifiers on behalf of this user. Verifications by untrusted verifiers are not included.",
4062 ),
4063 ),
4064 items: LexArrayItem::Ref(LexRef {
4065 r#ref: CowStr::new_static("#verificationView"),
4066 ..Default::default()
4067 }),
4068 ..Default::default()
4069 }),
4070 );
4071 map.insert(
4072 SmolStr::new_static("verifiedStatus"),
4073 LexObjectProperty::String(LexString {
4074 description: Some(
4075 CowStr::new_static(
4076 "The user's status as a verified account.",
4077 ),
4078 ),
4079 ..Default::default()
4080 }),
4081 );
4082 map
4083 },
4084 ..Default::default()
4085 }),
4086 );
4087 map.insert(
4088 SmolStr::new_static("verificationView"),
4089 LexUserType::Object(LexObject {
4090 description: Some(
4091 CowStr::new_static(
4092 "An individual verification for an associated subject.",
4093 ),
4094 ),
4095 required: Some(
4096 vec![
4097 SmolStr::new_static("issuer"), SmolStr::new_static("uri"),
4098 SmolStr::new_static("isValid"),
4099 SmolStr::new_static("createdAt")
4100 ],
4101 ),
4102 properties: {
4103 #[allow(unused_mut)]
4104 let mut map = BTreeMap::new();
4105 map.insert(
4106 SmolStr::new_static("createdAt"),
4107 LexObjectProperty::String(LexString {
4108 description: Some(
4109 CowStr::new_static(
4110 "Timestamp when the verification was created.",
4111 ),
4112 ),
4113 format: Some(LexStringFormat::Datetime),
4114 ..Default::default()
4115 }),
4116 );
4117 map.insert(
4118 SmolStr::new_static("isValid"),
4119 LexObjectProperty::Boolean(LexBoolean {
4120 ..Default::default()
4121 }),
4122 );
4123 map.insert(
4124 SmolStr::new_static("issuer"),
4125 LexObjectProperty::String(LexString {
4126 description: Some(
4127 CowStr::new_static("The user who issued this verification."),
4128 ),
4129 format: Some(LexStringFormat::Did),
4130 ..Default::default()
4131 }),
4132 );
4133 map.insert(
4134 SmolStr::new_static("uri"),
4135 LexObjectProperty::String(LexString {
4136 description: Some(
4137 CowStr::new_static("The AT-URI of the verification record."),
4138 ),
4139 format: Some(LexStringFormat::AtUri),
4140 ..Default::default()
4141 }),
4142 );
4143 map
4144 },
4145 ..Default::default()
4146 }),
4147 );
4148 map.insert(
4149 SmolStr::new_static("viewerState"),
4150 LexUserType::Object(LexObject {
4151 description: Some(
4152 CowStr::new_static(
4153 "Metadata about the requesting account's relationship with the subject account. Only has meaningful content for authed requests.",
4154 ),
4155 ),
4156 properties: {
4157 #[allow(unused_mut)]
4158 let mut map = BTreeMap::new();
4159 map.insert(
4160 SmolStr::new_static("activitySubscription"),
4161 LexObjectProperty::Ref(LexRef {
4162 r#ref: CowStr::new_static(
4163 "app.bsky.notification.defs#activitySubscription",
4164 ),
4165 ..Default::default()
4166 }),
4167 );
4168 map.insert(
4169 SmolStr::new_static("blockedBy"),
4170 LexObjectProperty::Boolean(LexBoolean {
4171 ..Default::default()
4172 }),
4173 );
4174 map.insert(
4175 SmolStr::new_static("blocking"),
4176 LexObjectProperty::String(LexString {
4177 format: Some(LexStringFormat::AtUri),
4178 ..Default::default()
4179 }),
4180 );
4181 map.insert(
4182 SmolStr::new_static("blockingByList"),
4183 LexObjectProperty::Ref(LexRef {
4184 r#ref: CowStr::new_static(
4185 "app.bsky.graph.defs#listViewBasic",
4186 ),
4187 ..Default::default()
4188 }),
4189 );
4190 map.insert(
4191 SmolStr::new_static("followedBy"),
4192 LexObjectProperty::String(LexString {
4193 format: Some(LexStringFormat::AtUri),
4194 ..Default::default()
4195 }),
4196 );
4197 map.insert(
4198 SmolStr::new_static("following"),
4199 LexObjectProperty::String(LexString {
4200 format: Some(LexStringFormat::AtUri),
4201 ..Default::default()
4202 }),
4203 );
4204 map.insert(
4205 SmolStr::new_static("knownFollowers"),
4206 LexObjectProperty::Ref(LexRef {
4207 r#ref: CowStr::new_static("#knownFollowers"),
4208 ..Default::default()
4209 }),
4210 );
4211 map.insert(
4212 SmolStr::new_static("muted"),
4213 LexObjectProperty::Boolean(LexBoolean {
4214 ..Default::default()
4215 }),
4216 );
4217 map.insert(
4218 SmolStr::new_static("mutedByList"),
4219 LexObjectProperty::Ref(LexRef {
4220 r#ref: CowStr::new_static(
4221 "app.bsky.graph.defs#listViewBasic",
4222 ),
4223 ..Default::default()
4224 }),
4225 );
4226 map
4227 },
4228 ..Default::default()
4229 }),
4230 );
4231 map
4232 },
4233 ..Default::default()
4234 }
4235}
4236
4237fn _default_feed_view_pref_hide_replies_by_unfollowed() -> Option<bool> {
4238 Some(true)
4239}
4240
4241pub mod hidden_posts_pref_state {
4242
4243 pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
4244 #[allow(unused)]
4245 use ::core::marker::PhantomData;
4246 mod sealed {
4247 pub trait Sealed {}
4248 }
4249 pub trait State: sealed::Sealed {
4251 type Items;
4252 }
4253 pub struct Empty(());
4255 impl sealed::Sealed for Empty {}
4256 impl State for Empty {
4257 type Items = Unset;
4258 }
4259 pub struct SetItems<S: State = Empty>(PhantomData<fn() -> S>);
4261 impl<S: State> sealed::Sealed for SetItems<S> {}
4262 impl<S: State> State for SetItems<S> {
4263 type Items = Set<members::items>;
4264 }
4265 #[allow(non_camel_case_types)]
4267 pub mod members {
4268 pub struct items(());
4270 }
4271}
4272
4273pub struct HiddenPostsPrefBuilder<'a, S: hidden_posts_pref_state::State> {
4275 _state: PhantomData<fn() -> S>,
4276 _fields: (Option<Vec<AtUri<'a>>>,),
4277 _lifetime: PhantomData<&'a ()>,
4278}
4279
4280impl<'a> HiddenPostsPref<'a> {
4281 pub fn new() -> HiddenPostsPrefBuilder<'a, hidden_posts_pref_state::Empty> {
4283 HiddenPostsPrefBuilder::new()
4284 }
4285}
4286
4287impl<'a> HiddenPostsPrefBuilder<'a, hidden_posts_pref_state::Empty> {
4288 pub fn new() -> Self {
4290 HiddenPostsPrefBuilder {
4291 _state: PhantomData,
4292 _fields: (None,),
4293 _lifetime: PhantomData,
4294 }
4295 }
4296}
4297
4298impl<'a, S> HiddenPostsPrefBuilder<'a, S>
4299where
4300 S: hidden_posts_pref_state::State,
4301 S::Items: hidden_posts_pref_state::IsUnset,
4302{
4303 pub fn items(
4305 mut self,
4306 value: impl Into<Vec<AtUri<'a>>>,
4307 ) -> HiddenPostsPrefBuilder<'a, hidden_posts_pref_state::SetItems<S>> {
4308 self._fields.0 = Option::Some(value.into());
4309 HiddenPostsPrefBuilder {
4310 _state: PhantomData,
4311 _fields: self._fields,
4312 _lifetime: PhantomData,
4313 }
4314 }
4315}
4316
4317impl<'a, S> HiddenPostsPrefBuilder<'a, S>
4318where
4319 S: hidden_posts_pref_state::State,
4320 S::Items: hidden_posts_pref_state::IsSet,
4321{
4322 pub fn build(self) -> HiddenPostsPref<'a> {
4324 HiddenPostsPref {
4325 items: self._fields.0.unwrap(),
4326 extra_data: Default::default(),
4327 }
4328 }
4329 pub fn build_with_data(
4331 self,
4332 extra_data: BTreeMap<jacquard_common::deps::smol_str::SmolStr, Data<'a>>,
4333 ) -> HiddenPostsPref<'a> {
4334 HiddenPostsPref {
4335 items: self._fields.0.unwrap(),
4336 extra_data: Some(extra_data),
4337 }
4338 }
4339}
4340
4341pub mod interests_pref_state {
4342
4343 pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
4344 #[allow(unused)]
4345 use ::core::marker::PhantomData;
4346 mod sealed {
4347 pub trait Sealed {}
4348 }
4349 pub trait State: sealed::Sealed {
4351 type Tags;
4352 }
4353 pub struct Empty(());
4355 impl sealed::Sealed for Empty {}
4356 impl State for Empty {
4357 type Tags = Unset;
4358 }
4359 pub struct SetTags<S: State = Empty>(PhantomData<fn() -> S>);
4361 impl<S: State> sealed::Sealed for SetTags<S> {}
4362 impl<S: State> State for SetTags<S> {
4363 type Tags = Set<members::tags>;
4364 }
4365 #[allow(non_camel_case_types)]
4367 pub mod members {
4368 pub struct tags(());
4370 }
4371}
4372
4373pub struct InterestsPrefBuilder<'a, S: interests_pref_state::State> {
4375 _state: PhantomData<fn() -> S>,
4376 _fields: (Option<Vec<CowStr<'a>>>,),
4377 _lifetime: PhantomData<&'a ()>,
4378}
4379
4380impl<'a> InterestsPref<'a> {
4381 pub fn new() -> InterestsPrefBuilder<'a, interests_pref_state::Empty> {
4383 InterestsPrefBuilder::new()
4384 }
4385}
4386
4387impl<'a> InterestsPrefBuilder<'a, interests_pref_state::Empty> {
4388 pub fn new() -> Self {
4390 InterestsPrefBuilder {
4391 _state: PhantomData,
4392 _fields: (None,),
4393 _lifetime: PhantomData,
4394 }
4395 }
4396}
4397
4398impl<'a, S> InterestsPrefBuilder<'a, S>
4399where
4400 S: interests_pref_state::State,
4401 S::Tags: interests_pref_state::IsUnset,
4402{
4403 pub fn tags(
4405 mut self,
4406 value: impl Into<Vec<CowStr<'a>>>,
4407 ) -> InterestsPrefBuilder<'a, interests_pref_state::SetTags<S>> {
4408 self._fields.0 = Option::Some(value.into());
4409 InterestsPrefBuilder {
4410 _state: PhantomData,
4411 _fields: self._fields,
4412 _lifetime: PhantomData,
4413 }
4414 }
4415}
4416
4417impl<'a, S> InterestsPrefBuilder<'a, S>
4418where
4419 S: interests_pref_state::State,
4420 S::Tags: interests_pref_state::IsSet,
4421{
4422 pub fn build(self) -> InterestsPref<'a> {
4424 InterestsPref {
4425 tags: self._fields.0.unwrap(),
4426 extra_data: Default::default(),
4427 }
4428 }
4429 pub fn build_with_data(
4431 self,
4432 extra_data: BTreeMap<jacquard_common::deps::smol_str::SmolStr, Data<'a>>,
4433 ) -> InterestsPref<'a> {
4434 InterestsPref {
4435 tags: self._fields.0.unwrap(),
4436 extra_data: Some(extra_data),
4437 }
4438 }
4439}
4440
4441pub mod known_followers_state {
4442
4443 pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
4444 #[allow(unused)]
4445 use ::core::marker::PhantomData;
4446 mod sealed {
4447 pub trait Sealed {}
4448 }
4449 pub trait State: sealed::Sealed {
4451 type Count;
4452 type Followers;
4453 }
4454 pub struct Empty(());
4456 impl sealed::Sealed for Empty {}
4457 impl State for Empty {
4458 type Count = Unset;
4459 type Followers = Unset;
4460 }
4461 pub struct SetCount<S: State = Empty>(PhantomData<fn() -> S>);
4463 impl<S: State> sealed::Sealed for SetCount<S> {}
4464 impl<S: State> State for SetCount<S> {
4465 type Count = Set<members::count>;
4466 type Followers = S::Followers;
4467 }
4468 pub struct SetFollowers<S: State = Empty>(PhantomData<fn() -> S>);
4470 impl<S: State> sealed::Sealed for SetFollowers<S> {}
4471 impl<S: State> State for SetFollowers<S> {
4472 type Count = S::Count;
4473 type Followers = Set<members::followers>;
4474 }
4475 #[allow(non_camel_case_types)]
4477 pub mod members {
4478 pub struct count(());
4480 pub struct followers(());
4482 }
4483}
4484
4485pub struct KnownFollowersBuilder<'a, S: known_followers_state::State> {
4487 _state: PhantomData<fn() -> S>,
4488 _fields: (Option<i64>, Option<Vec<actor::ProfileViewBasic<'a>>>),
4489 _lifetime: PhantomData<&'a ()>,
4490}
4491
4492impl<'a> KnownFollowers<'a> {
4493 pub fn new() -> KnownFollowersBuilder<'a, known_followers_state::Empty> {
4495 KnownFollowersBuilder::new()
4496 }
4497}
4498
4499impl<'a> KnownFollowersBuilder<'a, known_followers_state::Empty> {
4500 pub fn new() -> Self {
4502 KnownFollowersBuilder {
4503 _state: PhantomData,
4504 _fields: (None, None),
4505 _lifetime: PhantomData,
4506 }
4507 }
4508}
4509
4510impl<'a, S> KnownFollowersBuilder<'a, S>
4511where
4512 S: known_followers_state::State,
4513 S::Count: known_followers_state::IsUnset,
4514{
4515 pub fn count(
4517 mut self,
4518 value: impl Into<i64>,
4519 ) -> KnownFollowersBuilder<'a, known_followers_state::SetCount<S>> {
4520 self._fields.0 = Option::Some(value.into());
4521 KnownFollowersBuilder {
4522 _state: PhantomData,
4523 _fields: self._fields,
4524 _lifetime: PhantomData,
4525 }
4526 }
4527}
4528
4529impl<'a, S> KnownFollowersBuilder<'a, S>
4530where
4531 S: known_followers_state::State,
4532 S::Followers: known_followers_state::IsUnset,
4533{
4534 pub fn followers(
4536 mut self,
4537 value: impl Into<Vec<actor::ProfileViewBasic<'a>>>,
4538 ) -> KnownFollowersBuilder<'a, known_followers_state::SetFollowers<S>> {
4539 self._fields.1 = Option::Some(value.into());
4540 KnownFollowersBuilder {
4541 _state: PhantomData,
4542 _fields: self._fields,
4543 _lifetime: PhantomData,
4544 }
4545 }
4546}
4547
4548impl<'a, S> KnownFollowersBuilder<'a, S>
4549where
4550 S: known_followers_state::State,
4551 S::Count: known_followers_state::IsSet,
4552 S::Followers: known_followers_state::IsSet,
4553{
4554 pub fn build(self) -> KnownFollowers<'a> {
4556 KnownFollowers {
4557 count: self._fields.0.unwrap(),
4558 followers: self._fields.1.unwrap(),
4559 extra_data: Default::default(),
4560 }
4561 }
4562 pub fn build_with_data(
4564 self,
4565 extra_data: BTreeMap<jacquard_common::deps::smol_str::SmolStr, Data<'a>>,
4566 ) -> KnownFollowers<'a> {
4567 KnownFollowers {
4568 count: self._fields.0.unwrap(),
4569 followers: self._fields.1.unwrap(),
4570 extra_data: Some(extra_data),
4571 }
4572 }
4573}
4574
4575pub mod labeler_pref_item_state {
4576
4577 pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
4578 #[allow(unused)]
4579 use ::core::marker::PhantomData;
4580 mod sealed {
4581 pub trait Sealed {}
4582 }
4583 pub trait State: sealed::Sealed {
4585 type Did;
4586 }
4587 pub struct Empty(());
4589 impl sealed::Sealed for Empty {}
4590 impl State for Empty {
4591 type Did = Unset;
4592 }
4593 pub struct SetDid<S: State = Empty>(PhantomData<fn() -> S>);
4595 impl<S: State> sealed::Sealed for SetDid<S> {}
4596 impl<S: State> State for SetDid<S> {
4597 type Did = Set<members::did>;
4598 }
4599 #[allow(non_camel_case_types)]
4601 pub mod members {
4602 pub struct did(());
4604 }
4605}
4606
4607pub struct LabelerPrefItemBuilder<'a, S: labeler_pref_item_state::State> {
4609 _state: PhantomData<fn() -> S>,
4610 _fields: (Option<Did<'a>>,),
4611 _lifetime: PhantomData<&'a ()>,
4612}
4613
4614impl<'a> LabelerPrefItem<'a> {
4615 pub fn new() -> LabelerPrefItemBuilder<'a, labeler_pref_item_state::Empty> {
4617 LabelerPrefItemBuilder::new()
4618 }
4619}
4620
4621impl<'a> LabelerPrefItemBuilder<'a, labeler_pref_item_state::Empty> {
4622 pub fn new() -> Self {
4624 LabelerPrefItemBuilder {
4625 _state: PhantomData,
4626 _fields: (None,),
4627 _lifetime: PhantomData,
4628 }
4629 }
4630}
4631
4632impl<'a, S> LabelerPrefItemBuilder<'a, S>
4633where
4634 S: labeler_pref_item_state::State,
4635 S::Did: labeler_pref_item_state::IsUnset,
4636{
4637 pub fn did(
4639 mut self,
4640 value: impl Into<Did<'a>>,
4641 ) -> LabelerPrefItemBuilder<'a, labeler_pref_item_state::SetDid<S>> {
4642 self._fields.0 = Option::Some(value.into());
4643 LabelerPrefItemBuilder {
4644 _state: PhantomData,
4645 _fields: self._fields,
4646 _lifetime: PhantomData,
4647 }
4648 }
4649}
4650
4651impl<'a, S> LabelerPrefItemBuilder<'a, S>
4652where
4653 S: labeler_pref_item_state::State,
4654 S::Did: labeler_pref_item_state::IsSet,
4655{
4656 pub fn build(self) -> LabelerPrefItem<'a> {
4658 LabelerPrefItem {
4659 did: self._fields.0.unwrap(),
4660 extra_data: Default::default(),
4661 }
4662 }
4663 pub fn build_with_data(
4665 self,
4666 extra_data: BTreeMap<jacquard_common::deps::smol_str::SmolStr, Data<'a>>,
4667 ) -> LabelerPrefItem<'a> {
4668 LabelerPrefItem {
4669 did: self._fields.0.unwrap(),
4670 extra_data: Some(extra_data),
4671 }
4672 }
4673}
4674
4675pub mod labelers_pref_state {
4676
4677 pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
4678 #[allow(unused)]
4679 use ::core::marker::PhantomData;
4680 mod sealed {
4681 pub trait Sealed {}
4682 }
4683 pub trait State: sealed::Sealed {
4685 type Labelers;
4686 }
4687 pub struct Empty(());
4689 impl sealed::Sealed for Empty {}
4690 impl State for Empty {
4691 type Labelers = Unset;
4692 }
4693 pub struct SetLabelers<S: State = Empty>(PhantomData<fn() -> S>);
4695 impl<S: State> sealed::Sealed for SetLabelers<S> {}
4696 impl<S: State> State for SetLabelers<S> {
4697 type Labelers = Set<members::labelers>;
4698 }
4699 #[allow(non_camel_case_types)]
4701 pub mod members {
4702 pub struct labelers(());
4704 }
4705}
4706
4707pub struct LabelersPrefBuilder<'a, S: labelers_pref_state::State> {
4709 _state: PhantomData<fn() -> S>,
4710 _fields: (Option<Vec<actor::LabelerPrefItem<'a>>>,),
4711 _lifetime: PhantomData<&'a ()>,
4712}
4713
4714impl<'a> LabelersPref<'a> {
4715 pub fn new() -> LabelersPrefBuilder<'a, labelers_pref_state::Empty> {
4717 LabelersPrefBuilder::new()
4718 }
4719}
4720
4721impl<'a> LabelersPrefBuilder<'a, labelers_pref_state::Empty> {
4722 pub fn new() -> Self {
4724 LabelersPrefBuilder {
4725 _state: PhantomData,
4726 _fields: (None,),
4727 _lifetime: PhantomData,
4728 }
4729 }
4730}
4731
4732impl<'a, S> LabelersPrefBuilder<'a, S>
4733where
4734 S: labelers_pref_state::State,
4735 S::Labelers: labelers_pref_state::IsUnset,
4736{
4737 pub fn labelers(
4739 mut self,
4740 value: impl Into<Vec<actor::LabelerPrefItem<'a>>>,
4741 ) -> LabelersPrefBuilder<'a, labelers_pref_state::SetLabelers<S>> {
4742 self._fields.0 = Option::Some(value.into());
4743 LabelersPrefBuilder {
4744 _state: PhantomData,
4745 _fields: self._fields,
4746 _lifetime: PhantomData,
4747 }
4748 }
4749}
4750
4751impl<'a, S> LabelersPrefBuilder<'a, S>
4752where
4753 S: labelers_pref_state::State,
4754 S::Labelers: labelers_pref_state::IsSet,
4755{
4756 pub fn build(self) -> LabelersPref<'a> {
4758 LabelersPref {
4759 labelers: self._fields.0.unwrap(),
4760 extra_data: Default::default(),
4761 }
4762 }
4763 pub fn build_with_data(
4765 self,
4766 extra_data: BTreeMap<jacquard_common::deps::smol_str::SmolStr, Data<'a>>,
4767 ) -> LabelersPref<'a> {
4768 LabelersPref {
4769 labelers: self._fields.0.unwrap(),
4770 extra_data: Some(extra_data),
4771 }
4772 }
4773}
4774
4775fn _default_live_event_preferences_hide_all_feeds() -> Option<bool> {
4776 Some(false)
4777}
4778
4779impl Default for LiveEventPreferences<'_> {
4780 fn default() -> Self {
4781 Self {
4782 hidden_feed_ids: None,
4783 hide_all_feeds: Some(false),
4784 extra_data: Default::default(),
4785 }
4786 }
4787}
4788
4789pub mod muted_word_state {
4790
4791 pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
4792 #[allow(unused)]
4793 use ::core::marker::PhantomData;
4794 mod sealed {
4795 pub trait Sealed {}
4796 }
4797 pub trait State: sealed::Sealed {
4799 type Targets;
4800 type Value;
4801 }
4802 pub struct Empty(());
4804 impl sealed::Sealed for Empty {}
4805 impl State for Empty {
4806 type Targets = Unset;
4807 type Value = Unset;
4808 }
4809 pub struct SetTargets<S: State = Empty>(PhantomData<fn() -> S>);
4811 impl<S: State> sealed::Sealed for SetTargets<S> {}
4812 impl<S: State> State for SetTargets<S> {
4813 type Targets = Set<members::targets>;
4814 type Value = S::Value;
4815 }
4816 pub struct SetValue<S: State = Empty>(PhantomData<fn() -> S>);
4818 impl<S: State> sealed::Sealed for SetValue<S> {}
4819 impl<S: State> State for SetValue<S> {
4820 type Targets = S::Targets;
4821 type Value = Set<members::value>;
4822 }
4823 #[allow(non_camel_case_types)]
4825 pub mod members {
4826 pub struct targets(());
4828 pub struct value(());
4830 }
4831}
4832
4833pub struct MutedWordBuilder<'a, S: muted_word_state::State> {
4835 _state: PhantomData<fn() -> S>,
4836 _fields: (
4837 Option<MutedWordActorTarget<'a>>,
4838 Option<Datetime>,
4839 Option<CowStr<'a>>,
4840 Option<Vec<actor::MutedWordTarget<'a>>>,
4841 Option<CowStr<'a>>,
4842 ),
4843 _lifetime: PhantomData<&'a ()>,
4844}
4845
4846impl<'a> MutedWord<'a> {
4847 pub fn new() -> MutedWordBuilder<'a, muted_word_state::Empty> {
4849 MutedWordBuilder::new()
4850 }
4851}
4852
4853impl<'a> MutedWordBuilder<'a, muted_word_state::Empty> {
4854 pub fn new() -> Self {
4856 MutedWordBuilder {
4857 _state: PhantomData,
4858 _fields: (None, None, None, None, None),
4859 _lifetime: PhantomData,
4860 }
4861 }
4862}
4863
4864impl<'a, S: muted_word_state::State> MutedWordBuilder<'a, S> {
4865 pub fn actor_target(
4867 mut self,
4868 value: impl Into<Option<MutedWordActorTarget<'a>>>,
4869 ) -> Self {
4870 self._fields.0 = value.into();
4871 self
4872 }
4873 pub fn maybe_actor_target(
4875 mut self,
4876 value: Option<MutedWordActorTarget<'a>>,
4877 ) -> Self {
4878 self._fields.0 = value;
4879 self
4880 }
4881}
4882
4883impl<'a, S: muted_word_state::State> MutedWordBuilder<'a, S> {
4884 pub fn expires_at(mut self, value: impl Into<Option<Datetime>>) -> Self {
4886 self._fields.1 = value.into();
4887 self
4888 }
4889 pub fn maybe_expires_at(mut self, value: Option<Datetime>) -> Self {
4891 self._fields.1 = value;
4892 self
4893 }
4894}
4895
4896impl<'a, S: muted_word_state::State> MutedWordBuilder<'a, S> {
4897 pub fn id(mut self, value: impl Into<Option<CowStr<'a>>>) -> Self {
4899 self._fields.2 = value.into();
4900 self
4901 }
4902 pub fn maybe_id(mut self, value: Option<CowStr<'a>>) -> Self {
4904 self._fields.2 = value;
4905 self
4906 }
4907}
4908
4909impl<'a, S> MutedWordBuilder<'a, S>
4910where
4911 S: muted_word_state::State,
4912 S::Targets: muted_word_state::IsUnset,
4913{
4914 pub fn targets(
4916 mut self,
4917 value: impl Into<Vec<actor::MutedWordTarget<'a>>>,
4918 ) -> MutedWordBuilder<'a, muted_word_state::SetTargets<S>> {
4919 self._fields.3 = Option::Some(value.into());
4920 MutedWordBuilder {
4921 _state: PhantomData,
4922 _fields: self._fields,
4923 _lifetime: PhantomData,
4924 }
4925 }
4926}
4927
4928impl<'a, S> MutedWordBuilder<'a, S>
4929where
4930 S: muted_word_state::State,
4931 S::Value: muted_word_state::IsUnset,
4932{
4933 pub fn value(
4935 mut self,
4936 value: impl Into<CowStr<'a>>,
4937 ) -> MutedWordBuilder<'a, muted_word_state::SetValue<S>> {
4938 self._fields.4 = Option::Some(value.into());
4939 MutedWordBuilder {
4940 _state: PhantomData,
4941 _fields: self._fields,
4942 _lifetime: PhantomData,
4943 }
4944 }
4945}
4946
4947impl<'a, S> MutedWordBuilder<'a, S>
4948where
4949 S: muted_word_state::State,
4950 S::Targets: muted_word_state::IsSet,
4951 S::Value: muted_word_state::IsSet,
4952{
4953 pub fn build(self) -> MutedWord<'a> {
4955 MutedWord {
4956 actor_target: self._fields.0,
4957 expires_at: self._fields.1,
4958 id: self._fields.2,
4959 targets: self._fields.3.unwrap(),
4960 value: self._fields.4.unwrap(),
4961 extra_data: Default::default(),
4962 }
4963 }
4964 pub fn build_with_data(
4966 self,
4967 extra_data: BTreeMap<jacquard_common::deps::smol_str::SmolStr, Data<'a>>,
4968 ) -> MutedWord<'a> {
4969 MutedWord {
4970 actor_target: self._fields.0,
4971 expires_at: self._fields.1,
4972 id: self._fields.2,
4973 targets: self._fields.3.unwrap(),
4974 value: self._fields.4.unwrap(),
4975 extra_data: Some(extra_data),
4976 }
4977 }
4978}
4979
4980pub mod muted_words_pref_state {
4981
4982 pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
4983 #[allow(unused)]
4984 use ::core::marker::PhantomData;
4985 mod sealed {
4986 pub trait Sealed {}
4987 }
4988 pub trait State: sealed::Sealed {
4990 type Items;
4991 }
4992 pub struct Empty(());
4994 impl sealed::Sealed for Empty {}
4995 impl State for Empty {
4996 type Items = Unset;
4997 }
4998 pub struct SetItems<S: State = Empty>(PhantomData<fn() -> S>);
5000 impl<S: State> sealed::Sealed for SetItems<S> {}
5001 impl<S: State> State for SetItems<S> {
5002 type Items = Set<members::items>;
5003 }
5004 #[allow(non_camel_case_types)]
5006 pub mod members {
5007 pub struct items(());
5009 }
5010}
5011
5012pub struct MutedWordsPrefBuilder<'a, S: muted_words_pref_state::State> {
5014 _state: PhantomData<fn() -> S>,
5015 _fields: (Option<Vec<actor::MutedWord<'a>>>,),
5016 _lifetime: PhantomData<&'a ()>,
5017}
5018
5019impl<'a> MutedWordsPref<'a> {
5020 pub fn new() -> MutedWordsPrefBuilder<'a, muted_words_pref_state::Empty> {
5022 MutedWordsPrefBuilder::new()
5023 }
5024}
5025
5026impl<'a> MutedWordsPrefBuilder<'a, muted_words_pref_state::Empty> {
5027 pub fn new() -> Self {
5029 MutedWordsPrefBuilder {
5030 _state: PhantomData,
5031 _fields: (None,),
5032 _lifetime: PhantomData,
5033 }
5034 }
5035}
5036
5037impl<'a, S> MutedWordsPrefBuilder<'a, S>
5038where
5039 S: muted_words_pref_state::State,
5040 S::Items: muted_words_pref_state::IsUnset,
5041{
5042 pub fn items(
5044 mut self,
5045 value: impl Into<Vec<actor::MutedWord<'a>>>,
5046 ) -> MutedWordsPrefBuilder<'a, muted_words_pref_state::SetItems<S>> {
5047 self._fields.0 = Option::Some(value.into());
5048 MutedWordsPrefBuilder {
5049 _state: PhantomData,
5050 _fields: self._fields,
5051 _lifetime: PhantomData,
5052 }
5053 }
5054}
5055
5056impl<'a, S> MutedWordsPrefBuilder<'a, S>
5057where
5058 S: muted_words_pref_state::State,
5059 S::Items: muted_words_pref_state::IsSet,
5060{
5061 pub fn build(self) -> MutedWordsPref<'a> {
5063 MutedWordsPref {
5064 items: self._fields.0.unwrap(),
5065 extra_data: Default::default(),
5066 }
5067 }
5068 pub fn build_with_data(
5070 self,
5071 extra_data: BTreeMap<jacquard_common::deps::smol_str::SmolStr, Data<'a>>,
5072 ) -> MutedWordsPref<'a> {
5073 MutedWordsPref {
5074 items: self._fields.0.unwrap(),
5075 extra_data: Some(extra_data),
5076 }
5077 }
5078}
5079
5080fn _default_nux_completed() -> bool {
5081 false
5082}
5083
5084pub mod nux_state {
5085
5086 pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
5087 #[allow(unused)]
5088 use ::core::marker::PhantomData;
5089 mod sealed {
5090 pub trait Sealed {}
5091 }
5092 pub trait State: sealed::Sealed {
5094 type Id;
5095 type Completed;
5096 }
5097 pub struct Empty(());
5099 impl sealed::Sealed for Empty {}
5100 impl State for Empty {
5101 type Id = Unset;
5102 type Completed = Unset;
5103 }
5104 pub struct SetId<S: State = Empty>(PhantomData<fn() -> S>);
5106 impl<S: State> sealed::Sealed for SetId<S> {}
5107 impl<S: State> State for SetId<S> {
5108 type Id = Set<members::id>;
5109 type Completed = S::Completed;
5110 }
5111 pub struct SetCompleted<S: State = Empty>(PhantomData<fn() -> S>);
5113 impl<S: State> sealed::Sealed for SetCompleted<S> {}
5114 impl<S: State> State for SetCompleted<S> {
5115 type Id = S::Id;
5116 type Completed = Set<members::completed>;
5117 }
5118 #[allow(non_camel_case_types)]
5120 pub mod members {
5121 pub struct id(());
5123 pub struct completed(());
5125 }
5126}
5127
5128pub struct NuxBuilder<'a, S: nux_state::State> {
5130 _state: PhantomData<fn() -> S>,
5131 _fields: (Option<bool>, Option<CowStr<'a>>, Option<Datetime>, Option<CowStr<'a>>),
5132 _lifetime: PhantomData<&'a ()>,
5133}
5134
5135impl<'a> Nux<'a> {
5136 pub fn new() -> NuxBuilder<'a, nux_state::Empty> {
5138 NuxBuilder::new()
5139 }
5140}
5141
5142impl<'a> NuxBuilder<'a, nux_state::Empty> {
5143 pub fn new() -> Self {
5145 NuxBuilder {
5146 _state: PhantomData,
5147 _fields: (None, None, None, None),
5148 _lifetime: PhantomData,
5149 }
5150 }
5151}
5152
5153impl<'a, S> NuxBuilder<'a, S>
5154where
5155 S: nux_state::State,
5156 S::Completed: nux_state::IsUnset,
5157{
5158 pub fn completed(
5160 mut self,
5161 value: impl Into<bool>,
5162 ) -> NuxBuilder<'a, nux_state::SetCompleted<S>> {
5163 self._fields.0 = Option::Some(value.into());
5164 NuxBuilder {
5165 _state: PhantomData,
5166 _fields: self._fields,
5167 _lifetime: PhantomData,
5168 }
5169 }
5170}
5171
5172impl<'a, S: nux_state::State> NuxBuilder<'a, S> {
5173 pub fn data(mut self, value: impl Into<Option<CowStr<'a>>>) -> Self {
5175 self._fields.1 = value.into();
5176 self
5177 }
5178 pub fn maybe_data(mut self, value: Option<CowStr<'a>>) -> Self {
5180 self._fields.1 = value;
5181 self
5182 }
5183}
5184
5185impl<'a, S: nux_state::State> NuxBuilder<'a, S> {
5186 pub fn expires_at(mut self, value: impl Into<Option<Datetime>>) -> Self {
5188 self._fields.2 = value.into();
5189 self
5190 }
5191 pub fn maybe_expires_at(mut self, value: Option<Datetime>) -> Self {
5193 self._fields.2 = value;
5194 self
5195 }
5196}
5197
5198impl<'a, S> NuxBuilder<'a, S>
5199where
5200 S: nux_state::State,
5201 S::Id: nux_state::IsUnset,
5202{
5203 pub fn id(
5205 mut self,
5206 value: impl Into<CowStr<'a>>,
5207 ) -> NuxBuilder<'a, nux_state::SetId<S>> {
5208 self._fields.3 = Option::Some(value.into());
5209 NuxBuilder {
5210 _state: PhantomData,
5211 _fields: self._fields,
5212 _lifetime: PhantomData,
5213 }
5214 }
5215}
5216
5217impl<'a, S> NuxBuilder<'a, S>
5218where
5219 S: nux_state::State,
5220 S::Id: nux_state::IsSet,
5221 S::Completed: nux_state::IsSet,
5222{
5223 pub fn build(self) -> Nux<'a> {
5225 Nux {
5226 completed: self._fields.0.unwrap(),
5227 data: self._fields.1,
5228 expires_at: self._fields.2,
5229 id: self._fields.3.unwrap(),
5230 extra_data: Default::default(),
5231 }
5232 }
5233 pub fn build_with_data(
5235 self,
5236 extra_data: BTreeMap<jacquard_common::deps::smol_str::SmolStr, Data<'a>>,
5237 ) -> Nux<'a> {
5238 Nux {
5239 completed: self._fields.0.unwrap(),
5240 data: self._fields.1,
5241 expires_at: self._fields.2,
5242 id: self._fields.3.unwrap(),
5243 extra_data: Some(extra_data),
5244 }
5245 }
5246}
5247
5248pub mod profile_associated_germ_state {
5249
5250 pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
5251 #[allow(unused)]
5252 use ::core::marker::PhantomData;
5253 mod sealed {
5254 pub trait Sealed {}
5255 }
5256 pub trait State: sealed::Sealed {
5258 type ShowButtonTo;
5259 type MessageMeUrl;
5260 }
5261 pub struct Empty(());
5263 impl sealed::Sealed for Empty {}
5264 impl State for Empty {
5265 type ShowButtonTo = Unset;
5266 type MessageMeUrl = Unset;
5267 }
5268 pub struct SetShowButtonTo<S: State = Empty>(PhantomData<fn() -> S>);
5270 impl<S: State> sealed::Sealed for SetShowButtonTo<S> {}
5271 impl<S: State> State for SetShowButtonTo<S> {
5272 type ShowButtonTo = Set<members::show_button_to>;
5273 type MessageMeUrl = S::MessageMeUrl;
5274 }
5275 pub struct SetMessageMeUrl<S: State = Empty>(PhantomData<fn() -> S>);
5277 impl<S: State> sealed::Sealed for SetMessageMeUrl<S> {}
5278 impl<S: State> State for SetMessageMeUrl<S> {
5279 type ShowButtonTo = S::ShowButtonTo;
5280 type MessageMeUrl = Set<members::message_me_url>;
5281 }
5282 #[allow(non_camel_case_types)]
5284 pub mod members {
5285 pub struct show_button_to(());
5287 pub struct message_me_url(());
5289 }
5290}
5291
5292pub struct ProfileAssociatedGermBuilder<'a, S: profile_associated_germ_state::State> {
5294 _state: PhantomData<fn() -> S>,
5295 _fields: (Option<UriValue<'a>>, Option<ProfileAssociatedGermShowButtonTo<'a>>),
5296 _lifetime: PhantomData<&'a ()>,
5297}
5298
5299impl<'a> ProfileAssociatedGerm<'a> {
5300 pub fn new() -> ProfileAssociatedGermBuilder<
5302 'a,
5303 profile_associated_germ_state::Empty,
5304 > {
5305 ProfileAssociatedGermBuilder::new()
5306 }
5307}
5308
5309impl<'a> ProfileAssociatedGermBuilder<'a, profile_associated_germ_state::Empty> {
5310 pub fn new() -> Self {
5312 ProfileAssociatedGermBuilder {
5313 _state: PhantomData,
5314 _fields: (None, None),
5315 _lifetime: PhantomData,
5316 }
5317 }
5318}
5319
5320impl<'a, S> ProfileAssociatedGermBuilder<'a, S>
5321where
5322 S: profile_associated_germ_state::State,
5323 S::MessageMeUrl: profile_associated_germ_state::IsUnset,
5324{
5325 pub fn message_me_url(
5327 mut self,
5328 value: impl Into<UriValue<'a>>,
5329 ) -> ProfileAssociatedGermBuilder<
5330 'a,
5331 profile_associated_germ_state::SetMessageMeUrl<S>,
5332 > {
5333 self._fields.0 = Option::Some(value.into());
5334 ProfileAssociatedGermBuilder {
5335 _state: PhantomData,
5336 _fields: self._fields,
5337 _lifetime: PhantomData,
5338 }
5339 }
5340}
5341
5342impl<'a, S> ProfileAssociatedGermBuilder<'a, S>
5343where
5344 S: profile_associated_germ_state::State,
5345 S::ShowButtonTo: profile_associated_germ_state::IsUnset,
5346{
5347 pub fn show_button_to(
5349 mut self,
5350 value: impl Into<ProfileAssociatedGermShowButtonTo<'a>>,
5351 ) -> ProfileAssociatedGermBuilder<
5352 'a,
5353 profile_associated_germ_state::SetShowButtonTo<S>,
5354 > {
5355 self._fields.1 = Option::Some(value.into());
5356 ProfileAssociatedGermBuilder {
5357 _state: PhantomData,
5358 _fields: self._fields,
5359 _lifetime: PhantomData,
5360 }
5361 }
5362}
5363
5364impl<'a, S> ProfileAssociatedGermBuilder<'a, S>
5365where
5366 S: profile_associated_germ_state::State,
5367 S::ShowButtonTo: profile_associated_germ_state::IsSet,
5368 S::MessageMeUrl: profile_associated_germ_state::IsSet,
5369{
5370 pub fn build(self) -> ProfileAssociatedGerm<'a> {
5372 ProfileAssociatedGerm {
5373 message_me_url: self._fields.0.unwrap(),
5374 show_button_to: self._fields.1.unwrap(),
5375 extra_data: Default::default(),
5376 }
5377 }
5378 pub fn build_with_data(
5380 self,
5381 extra_data: BTreeMap<jacquard_common::deps::smol_str::SmolStr, Data<'a>>,
5382 ) -> ProfileAssociatedGerm<'a> {
5383 ProfileAssociatedGerm {
5384 message_me_url: self._fields.0.unwrap(),
5385 show_button_to: self._fields.1.unwrap(),
5386 extra_data: Some(extra_data),
5387 }
5388 }
5389}
5390
5391pub mod profile_view_state {
5392
5393 pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
5394 #[allow(unused)]
5395 use ::core::marker::PhantomData;
5396 mod sealed {
5397 pub trait Sealed {}
5398 }
5399 pub trait State: sealed::Sealed {
5401 type Did;
5402 type Handle;
5403 }
5404 pub struct Empty(());
5406 impl sealed::Sealed for Empty {}
5407 impl State for Empty {
5408 type Did = Unset;
5409 type Handle = Unset;
5410 }
5411 pub struct SetDid<S: State = Empty>(PhantomData<fn() -> S>);
5413 impl<S: State> sealed::Sealed for SetDid<S> {}
5414 impl<S: State> State for SetDid<S> {
5415 type Did = Set<members::did>;
5416 type Handle = S::Handle;
5417 }
5418 pub struct SetHandle<S: State = Empty>(PhantomData<fn() -> S>);
5420 impl<S: State> sealed::Sealed for SetHandle<S> {}
5421 impl<S: State> State for SetHandle<S> {
5422 type Did = S::Did;
5423 type Handle = Set<members::handle>;
5424 }
5425 #[allow(non_camel_case_types)]
5427 pub mod members {
5428 pub struct did(());
5430 pub struct handle(());
5432 }
5433}
5434
5435pub struct ProfileViewBuilder<'a, S: profile_view_state::State> {
5437 _state: PhantomData<fn() -> S>,
5438 _fields: (
5439 Option<actor::ProfileAssociated<'a>>,
5440 Option<UriValue<'a>>,
5441 Option<Datetime>,
5442 Option<Data<'a>>,
5443 Option<CowStr<'a>>,
5444 Option<Did<'a>>,
5445 Option<CowStr<'a>>,
5446 Option<Handle<'a>>,
5447 Option<Datetime>,
5448 Option<Vec<Label<'a>>>,
5449 Option<CowStr<'a>>,
5450 Option<actor::StatusView<'a>>,
5451 Option<actor::VerificationState<'a>>,
5452 Option<actor::ViewerState<'a>>,
5453 ),
5454 _lifetime: PhantomData<&'a ()>,
5455}
5456
5457impl<'a> ProfileView<'a> {
5458 pub fn new() -> ProfileViewBuilder<'a, profile_view_state::Empty> {
5460 ProfileViewBuilder::new()
5461 }
5462}
5463
5464impl<'a> ProfileViewBuilder<'a, profile_view_state::Empty> {
5465 pub fn new() -> Self {
5467 ProfileViewBuilder {
5468 _state: PhantomData,
5469 _fields: (
5470 None,
5471 None,
5472 None,
5473 None,
5474 None,
5475 None,
5476 None,
5477 None,
5478 None,
5479 None,
5480 None,
5481 None,
5482 None,
5483 None,
5484 ),
5485 _lifetime: PhantomData,
5486 }
5487 }
5488}
5489
5490impl<'a, S: profile_view_state::State> ProfileViewBuilder<'a, S> {
5491 pub fn associated(
5493 mut self,
5494 value: impl Into<Option<actor::ProfileAssociated<'a>>>,
5495 ) -> Self {
5496 self._fields.0 = value.into();
5497 self
5498 }
5499 pub fn maybe_associated(
5501 mut self,
5502 value: Option<actor::ProfileAssociated<'a>>,
5503 ) -> Self {
5504 self._fields.0 = value;
5505 self
5506 }
5507}
5508
5509impl<'a, S: profile_view_state::State> ProfileViewBuilder<'a, S> {
5510 pub fn avatar(mut self, value: impl Into<Option<UriValue<'a>>>) -> Self {
5512 self._fields.1 = value.into();
5513 self
5514 }
5515 pub fn maybe_avatar(mut self, value: Option<UriValue<'a>>) -> Self {
5517 self._fields.1 = value;
5518 self
5519 }
5520}
5521
5522impl<'a, S: profile_view_state::State> ProfileViewBuilder<'a, S> {
5523 pub fn created_at(mut self, value: impl Into<Option<Datetime>>) -> Self {
5525 self._fields.2 = value.into();
5526 self
5527 }
5528 pub fn maybe_created_at(mut self, value: Option<Datetime>) -> Self {
5530 self._fields.2 = value;
5531 self
5532 }
5533}
5534
5535impl<'a, S: profile_view_state::State> ProfileViewBuilder<'a, S> {
5536 pub fn debug(mut self, value: impl Into<Option<Data<'a>>>) -> Self {
5538 self._fields.3 = value.into();
5539 self
5540 }
5541 pub fn maybe_debug(mut self, value: Option<Data<'a>>) -> Self {
5543 self._fields.3 = value;
5544 self
5545 }
5546}
5547
5548impl<'a, S: profile_view_state::State> ProfileViewBuilder<'a, S> {
5549 pub fn description(mut self, value: impl Into<Option<CowStr<'a>>>) -> Self {
5551 self._fields.4 = value.into();
5552 self
5553 }
5554 pub fn maybe_description(mut self, value: Option<CowStr<'a>>) -> Self {
5556 self._fields.4 = value;
5557 self
5558 }
5559}
5560
5561impl<'a, S> ProfileViewBuilder<'a, S>
5562where
5563 S: profile_view_state::State,
5564 S::Did: profile_view_state::IsUnset,
5565{
5566 pub fn did(
5568 mut self,
5569 value: impl Into<Did<'a>>,
5570 ) -> ProfileViewBuilder<'a, profile_view_state::SetDid<S>> {
5571 self._fields.5 = Option::Some(value.into());
5572 ProfileViewBuilder {
5573 _state: PhantomData,
5574 _fields: self._fields,
5575 _lifetime: PhantomData,
5576 }
5577 }
5578}
5579
5580impl<'a, S: profile_view_state::State> ProfileViewBuilder<'a, S> {
5581 pub fn display_name(mut self, value: impl Into<Option<CowStr<'a>>>) -> Self {
5583 self._fields.6 = value.into();
5584 self
5585 }
5586 pub fn maybe_display_name(mut self, value: Option<CowStr<'a>>) -> Self {
5588 self._fields.6 = value;
5589 self
5590 }
5591}
5592
5593impl<'a, S> ProfileViewBuilder<'a, S>
5594where
5595 S: profile_view_state::State,
5596 S::Handle: profile_view_state::IsUnset,
5597{
5598 pub fn handle(
5600 mut self,
5601 value: impl Into<Handle<'a>>,
5602 ) -> ProfileViewBuilder<'a, profile_view_state::SetHandle<S>> {
5603 self._fields.7 = Option::Some(value.into());
5604 ProfileViewBuilder {
5605 _state: PhantomData,
5606 _fields: self._fields,
5607 _lifetime: PhantomData,
5608 }
5609 }
5610}
5611
5612impl<'a, S: profile_view_state::State> ProfileViewBuilder<'a, S> {
5613 pub fn indexed_at(mut self, value: impl Into<Option<Datetime>>) -> Self {
5615 self._fields.8 = value.into();
5616 self
5617 }
5618 pub fn maybe_indexed_at(mut self, value: Option<Datetime>) -> Self {
5620 self._fields.8 = value;
5621 self
5622 }
5623}
5624
5625impl<'a, S: profile_view_state::State> ProfileViewBuilder<'a, S> {
5626 pub fn labels(mut self, value: impl Into<Option<Vec<Label<'a>>>>) -> Self {
5628 self._fields.9 = value.into();
5629 self
5630 }
5631 pub fn maybe_labels(mut self, value: Option<Vec<Label<'a>>>) -> Self {
5633 self._fields.9 = value;
5634 self
5635 }
5636}
5637
5638impl<'a, S: profile_view_state::State> ProfileViewBuilder<'a, S> {
5639 pub fn pronouns(mut self, value: impl Into<Option<CowStr<'a>>>) -> Self {
5641 self._fields.10 = value.into();
5642 self
5643 }
5644 pub fn maybe_pronouns(mut self, value: Option<CowStr<'a>>) -> Self {
5646 self._fields.10 = value;
5647 self
5648 }
5649}
5650
5651impl<'a, S: profile_view_state::State> ProfileViewBuilder<'a, S> {
5652 pub fn status(mut self, value: impl Into<Option<actor::StatusView<'a>>>) -> Self {
5654 self._fields.11 = value.into();
5655 self
5656 }
5657 pub fn maybe_status(mut self, value: Option<actor::StatusView<'a>>) -> Self {
5659 self._fields.11 = value;
5660 self
5661 }
5662}
5663
5664impl<'a, S: profile_view_state::State> ProfileViewBuilder<'a, S> {
5665 pub fn verification(
5667 mut self,
5668 value: impl Into<Option<actor::VerificationState<'a>>>,
5669 ) -> Self {
5670 self._fields.12 = value.into();
5671 self
5672 }
5673 pub fn maybe_verification(
5675 mut self,
5676 value: Option<actor::VerificationState<'a>>,
5677 ) -> Self {
5678 self._fields.12 = value;
5679 self
5680 }
5681}
5682
5683impl<'a, S: profile_view_state::State> ProfileViewBuilder<'a, S> {
5684 pub fn viewer(mut self, value: impl Into<Option<actor::ViewerState<'a>>>) -> Self {
5686 self._fields.13 = value.into();
5687 self
5688 }
5689 pub fn maybe_viewer(mut self, value: Option<actor::ViewerState<'a>>) -> Self {
5691 self._fields.13 = value;
5692 self
5693 }
5694}
5695
5696impl<'a, S> ProfileViewBuilder<'a, S>
5697where
5698 S: profile_view_state::State,
5699 S::Did: profile_view_state::IsSet,
5700 S::Handle: profile_view_state::IsSet,
5701{
5702 pub fn build(self) -> ProfileView<'a> {
5704 ProfileView {
5705 associated: self._fields.0,
5706 avatar: self._fields.1,
5707 created_at: self._fields.2,
5708 debug: self._fields.3,
5709 description: self._fields.4,
5710 did: self._fields.5.unwrap(),
5711 display_name: self._fields.6,
5712 handle: self._fields.7.unwrap(),
5713 indexed_at: self._fields.8,
5714 labels: self._fields.9,
5715 pronouns: self._fields.10,
5716 status: self._fields.11,
5717 verification: self._fields.12,
5718 viewer: self._fields.13,
5719 extra_data: Default::default(),
5720 }
5721 }
5722 pub fn build_with_data(
5724 self,
5725 extra_data: BTreeMap<jacquard_common::deps::smol_str::SmolStr, Data<'a>>,
5726 ) -> ProfileView<'a> {
5727 ProfileView {
5728 associated: self._fields.0,
5729 avatar: self._fields.1,
5730 created_at: self._fields.2,
5731 debug: self._fields.3,
5732 description: self._fields.4,
5733 did: self._fields.5.unwrap(),
5734 display_name: self._fields.6,
5735 handle: self._fields.7.unwrap(),
5736 indexed_at: self._fields.8,
5737 labels: self._fields.9,
5738 pronouns: self._fields.10,
5739 status: self._fields.11,
5740 verification: self._fields.12,
5741 viewer: self._fields.13,
5742 extra_data: Some(extra_data),
5743 }
5744 }
5745}
5746
5747pub mod profile_view_basic_state {
5748
5749 pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
5750 #[allow(unused)]
5751 use ::core::marker::PhantomData;
5752 mod sealed {
5753 pub trait Sealed {}
5754 }
5755 pub trait State: sealed::Sealed {
5757 type Handle;
5758 type Did;
5759 }
5760 pub struct Empty(());
5762 impl sealed::Sealed for Empty {}
5763 impl State for Empty {
5764 type Handle = Unset;
5765 type Did = Unset;
5766 }
5767 pub struct SetHandle<S: State = Empty>(PhantomData<fn() -> S>);
5769 impl<S: State> sealed::Sealed for SetHandle<S> {}
5770 impl<S: State> State for SetHandle<S> {
5771 type Handle = Set<members::handle>;
5772 type Did = S::Did;
5773 }
5774 pub struct SetDid<S: State = Empty>(PhantomData<fn() -> S>);
5776 impl<S: State> sealed::Sealed for SetDid<S> {}
5777 impl<S: State> State for SetDid<S> {
5778 type Handle = S::Handle;
5779 type Did = Set<members::did>;
5780 }
5781 #[allow(non_camel_case_types)]
5783 pub mod members {
5784 pub struct handle(());
5786 pub struct did(());
5788 }
5789}
5790
5791pub struct ProfileViewBasicBuilder<'a, S: profile_view_basic_state::State> {
5793 _state: PhantomData<fn() -> S>,
5794 _fields: (
5795 Option<actor::ProfileAssociated<'a>>,
5796 Option<UriValue<'a>>,
5797 Option<Datetime>,
5798 Option<Data<'a>>,
5799 Option<Did<'a>>,
5800 Option<CowStr<'a>>,
5801 Option<Handle<'a>>,
5802 Option<Vec<Label<'a>>>,
5803 Option<CowStr<'a>>,
5804 Option<actor::StatusView<'a>>,
5805 Option<actor::VerificationState<'a>>,
5806 Option<actor::ViewerState<'a>>,
5807 ),
5808 _lifetime: PhantomData<&'a ()>,
5809}
5810
5811impl<'a> ProfileViewBasic<'a> {
5812 pub fn new() -> ProfileViewBasicBuilder<'a, profile_view_basic_state::Empty> {
5814 ProfileViewBasicBuilder::new()
5815 }
5816}
5817
5818impl<'a> ProfileViewBasicBuilder<'a, profile_view_basic_state::Empty> {
5819 pub fn new() -> Self {
5821 ProfileViewBasicBuilder {
5822 _state: PhantomData,
5823 _fields: (
5824 None,
5825 None,
5826 None,
5827 None,
5828 None,
5829 None,
5830 None,
5831 None,
5832 None,
5833 None,
5834 None,
5835 None,
5836 ),
5837 _lifetime: PhantomData,
5838 }
5839 }
5840}
5841
5842impl<'a, S: profile_view_basic_state::State> ProfileViewBasicBuilder<'a, S> {
5843 pub fn associated(
5845 mut self,
5846 value: impl Into<Option<actor::ProfileAssociated<'a>>>,
5847 ) -> Self {
5848 self._fields.0 = value.into();
5849 self
5850 }
5851 pub fn maybe_associated(
5853 mut self,
5854 value: Option<actor::ProfileAssociated<'a>>,
5855 ) -> Self {
5856 self._fields.0 = value;
5857 self
5858 }
5859}
5860
5861impl<'a, S: profile_view_basic_state::State> ProfileViewBasicBuilder<'a, S> {
5862 pub fn avatar(mut self, value: impl Into<Option<UriValue<'a>>>) -> Self {
5864 self._fields.1 = value.into();
5865 self
5866 }
5867 pub fn maybe_avatar(mut self, value: Option<UriValue<'a>>) -> Self {
5869 self._fields.1 = value;
5870 self
5871 }
5872}
5873
5874impl<'a, S: profile_view_basic_state::State> ProfileViewBasicBuilder<'a, S> {
5875 pub fn created_at(mut self, value: impl Into<Option<Datetime>>) -> Self {
5877 self._fields.2 = value.into();
5878 self
5879 }
5880 pub fn maybe_created_at(mut self, value: Option<Datetime>) -> Self {
5882 self._fields.2 = value;
5883 self
5884 }
5885}
5886
5887impl<'a, S: profile_view_basic_state::State> ProfileViewBasicBuilder<'a, S> {
5888 pub fn debug(mut self, value: impl Into<Option<Data<'a>>>) -> Self {
5890 self._fields.3 = value.into();
5891 self
5892 }
5893 pub fn maybe_debug(mut self, value: Option<Data<'a>>) -> Self {
5895 self._fields.3 = value;
5896 self
5897 }
5898}
5899
5900impl<'a, S> ProfileViewBasicBuilder<'a, S>
5901where
5902 S: profile_view_basic_state::State,
5903 S::Did: profile_view_basic_state::IsUnset,
5904{
5905 pub fn did(
5907 mut self,
5908 value: impl Into<Did<'a>>,
5909 ) -> ProfileViewBasicBuilder<'a, profile_view_basic_state::SetDid<S>> {
5910 self._fields.4 = Option::Some(value.into());
5911 ProfileViewBasicBuilder {
5912 _state: PhantomData,
5913 _fields: self._fields,
5914 _lifetime: PhantomData,
5915 }
5916 }
5917}
5918
5919impl<'a, S: profile_view_basic_state::State> ProfileViewBasicBuilder<'a, S> {
5920 pub fn display_name(mut self, value: impl Into<Option<CowStr<'a>>>) -> Self {
5922 self._fields.5 = value.into();
5923 self
5924 }
5925 pub fn maybe_display_name(mut self, value: Option<CowStr<'a>>) -> Self {
5927 self._fields.5 = value;
5928 self
5929 }
5930}
5931
5932impl<'a, S> ProfileViewBasicBuilder<'a, S>
5933where
5934 S: profile_view_basic_state::State,
5935 S::Handle: profile_view_basic_state::IsUnset,
5936{
5937 pub fn handle(
5939 mut self,
5940 value: impl Into<Handle<'a>>,
5941 ) -> ProfileViewBasicBuilder<'a, profile_view_basic_state::SetHandle<S>> {
5942 self._fields.6 = Option::Some(value.into());
5943 ProfileViewBasicBuilder {
5944 _state: PhantomData,
5945 _fields: self._fields,
5946 _lifetime: PhantomData,
5947 }
5948 }
5949}
5950
5951impl<'a, S: profile_view_basic_state::State> ProfileViewBasicBuilder<'a, S> {
5952 pub fn labels(mut self, value: impl Into<Option<Vec<Label<'a>>>>) -> Self {
5954 self._fields.7 = value.into();
5955 self
5956 }
5957 pub fn maybe_labels(mut self, value: Option<Vec<Label<'a>>>) -> Self {
5959 self._fields.7 = value;
5960 self
5961 }
5962}
5963
5964impl<'a, S: profile_view_basic_state::State> ProfileViewBasicBuilder<'a, S> {
5965 pub fn pronouns(mut self, value: impl Into<Option<CowStr<'a>>>) -> Self {
5967 self._fields.8 = value.into();
5968 self
5969 }
5970 pub fn maybe_pronouns(mut self, value: Option<CowStr<'a>>) -> Self {
5972 self._fields.8 = value;
5973 self
5974 }
5975}
5976
5977impl<'a, S: profile_view_basic_state::State> ProfileViewBasicBuilder<'a, S> {
5978 pub fn status(mut self, value: impl Into<Option<actor::StatusView<'a>>>) -> Self {
5980 self._fields.9 = value.into();
5981 self
5982 }
5983 pub fn maybe_status(mut self, value: Option<actor::StatusView<'a>>) -> Self {
5985 self._fields.9 = value;
5986 self
5987 }
5988}
5989
5990impl<'a, S: profile_view_basic_state::State> ProfileViewBasicBuilder<'a, S> {
5991 pub fn verification(
5993 mut self,
5994 value: impl Into<Option<actor::VerificationState<'a>>>,
5995 ) -> Self {
5996 self._fields.10 = value.into();
5997 self
5998 }
5999 pub fn maybe_verification(
6001 mut self,
6002 value: Option<actor::VerificationState<'a>>,
6003 ) -> Self {
6004 self._fields.10 = value;
6005 self
6006 }
6007}
6008
6009impl<'a, S: profile_view_basic_state::State> ProfileViewBasicBuilder<'a, S> {
6010 pub fn viewer(mut self, value: impl Into<Option<actor::ViewerState<'a>>>) -> Self {
6012 self._fields.11 = value.into();
6013 self
6014 }
6015 pub fn maybe_viewer(mut self, value: Option<actor::ViewerState<'a>>) -> Self {
6017 self._fields.11 = value;
6018 self
6019 }
6020}
6021
6022impl<'a, S> ProfileViewBasicBuilder<'a, S>
6023where
6024 S: profile_view_basic_state::State,
6025 S::Handle: profile_view_basic_state::IsSet,
6026 S::Did: profile_view_basic_state::IsSet,
6027{
6028 pub fn build(self) -> ProfileViewBasic<'a> {
6030 ProfileViewBasic {
6031 associated: self._fields.0,
6032 avatar: self._fields.1,
6033 created_at: self._fields.2,
6034 debug: self._fields.3,
6035 did: self._fields.4.unwrap(),
6036 display_name: self._fields.5,
6037 handle: self._fields.6.unwrap(),
6038 labels: self._fields.7,
6039 pronouns: self._fields.8,
6040 status: self._fields.9,
6041 verification: self._fields.10,
6042 viewer: self._fields.11,
6043 extra_data: Default::default(),
6044 }
6045 }
6046 pub fn build_with_data(
6048 self,
6049 extra_data: BTreeMap<jacquard_common::deps::smol_str::SmolStr, Data<'a>>,
6050 ) -> ProfileViewBasic<'a> {
6051 ProfileViewBasic {
6052 associated: self._fields.0,
6053 avatar: self._fields.1,
6054 created_at: self._fields.2,
6055 debug: self._fields.3,
6056 did: self._fields.4.unwrap(),
6057 display_name: self._fields.5,
6058 handle: self._fields.6.unwrap(),
6059 labels: self._fields.7,
6060 pronouns: self._fields.8,
6061 status: self._fields.9,
6062 verification: self._fields.10,
6063 viewer: self._fields.11,
6064 extra_data: Some(extra_data),
6065 }
6066 }
6067}
6068
6069pub mod profile_view_detailed_state {
6070
6071 pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
6072 #[allow(unused)]
6073 use ::core::marker::PhantomData;
6074 mod sealed {
6075 pub trait Sealed {}
6076 }
6077 pub trait State: sealed::Sealed {
6079 type Did;
6080 type Handle;
6081 }
6082 pub struct Empty(());
6084 impl sealed::Sealed for Empty {}
6085 impl State for Empty {
6086 type Did = Unset;
6087 type Handle = Unset;
6088 }
6089 pub struct SetDid<S: State = Empty>(PhantomData<fn() -> S>);
6091 impl<S: State> sealed::Sealed for SetDid<S> {}
6092 impl<S: State> State for SetDid<S> {
6093 type Did = Set<members::did>;
6094 type Handle = S::Handle;
6095 }
6096 pub struct SetHandle<S: State = Empty>(PhantomData<fn() -> S>);
6098 impl<S: State> sealed::Sealed for SetHandle<S> {}
6099 impl<S: State> State for SetHandle<S> {
6100 type Did = S::Did;
6101 type Handle = Set<members::handle>;
6102 }
6103 #[allow(non_camel_case_types)]
6105 pub mod members {
6106 pub struct did(());
6108 pub struct handle(());
6110 }
6111}
6112
6113pub struct ProfileViewDetailedBuilder<'a, S: profile_view_detailed_state::State> {
6115 _state: PhantomData<fn() -> S>,
6116 _fields: (
6117 Option<actor::ProfileAssociated<'a>>,
6118 Option<UriValue<'a>>,
6119 Option<UriValue<'a>>,
6120 Option<Datetime>,
6121 Option<Data<'a>>,
6122 Option<CowStr<'a>>,
6123 Option<Did<'a>>,
6124 Option<CowStr<'a>>,
6125 Option<i64>,
6126 Option<i64>,
6127 Option<Handle<'a>>,
6128 Option<Datetime>,
6129 Option<StarterPackViewBasic<'a>>,
6130 Option<Vec<Label<'a>>>,
6131 Option<StrongRef<'a>>,
6132 Option<i64>,
6133 Option<CowStr<'a>>,
6134 Option<actor::StatusView<'a>>,
6135 Option<actor::VerificationState<'a>>,
6136 Option<actor::ViewerState<'a>>,
6137 Option<UriValue<'a>>,
6138 ),
6139 _lifetime: PhantomData<&'a ()>,
6140}
6141
6142impl<'a> ProfileViewDetailed<'a> {
6143 pub fn new() -> ProfileViewDetailedBuilder<'a, profile_view_detailed_state::Empty> {
6145 ProfileViewDetailedBuilder::new()
6146 }
6147}
6148
6149impl<'a> ProfileViewDetailedBuilder<'a, profile_view_detailed_state::Empty> {
6150 pub fn new() -> Self {
6152 ProfileViewDetailedBuilder {
6153 _state: PhantomData,
6154 _fields: (
6155 None,
6156 None,
6157 None,
6158 None,
6159 None,
6160 None,
6161 None,
6162 None,
6163 None,
6164 None,
6165 None,
6166 None,
6167 None,
6168 None,
6169 None,
6170 None,
6171 None,
6172 None,
6173 None,
6174 None,
6175 None,
6176 ),
6177 _lifetime: PhantomData,
6178 }
6179 }
6180}
6181
6182impl<'a, S: profile_view_detailed_state::State> ProfileViewDetailedBuilder<'a, S> {
6183 pub fn associated(
6185 mut self,
6186 value: impl Into<Option<actor::ProfileAssociated<'a>>>,
6187 ) -> Self {
6188 self._fields.0 = value.into();
6189 self
6190 }
6191 pub fn maybe_associated(
6193 mut self,
6194 value: Option<actor::ProfileAssociated<'a>>,
6195 ) -> Self {
6196 self._fields.0 = value;
6197 self
6198 }
6199}
6200
6201impl<'a, S: profile_view_detailed_state::State> ProfileViewDetailedBuilder<'a, S> {
6202 pub fn avatar(mut self, value: impl Into<Option<UriValue<'a>>>) -> Self {
6204 self._fields.1 = value.into();
6205 self
6206 }
6207 pub fn maybe_avatar(mut self, value: Option<UriValue<'a>>) -> Self {
6209 self._fields.1 = value;
6210 self
6211 }
6212}
6213
6214impl<'a, S: profile_view_detailed_state::State> ProfileViewDetailedBuilder<'a, S> {
6215 pub fn banner(mut self, value: impl Into<Option<UriValue<'a>>>) -> Self {
6217 self._fields.2 = value.into();
6218 self
6219 }
6220 pub fn maybe_banner(mut self, value: Option<UriValue<'a>>) -> Self {
6222 self._fields.2 = value;
6223 self
6224 }
6225}
6226
6227impl<'a, S: profile_view_detailed_state::State> ProfileViewDetailedBuilder<'a, S> {
6228 pub fn created_at(mut self, value: impl Into<Option<Datetime>>) -> Self {
6230 self._fields.3 = value.into();
6231 self
6232 }
6233 pub fn maybe_created_at(mut self, value: Option<Datetime>) -> Self {
6235 self._fields.3 = value;
6236 self
6237 }
6238}
6239
6240impl<'a, S: profile_view_detailed_state::State> ProfileViewDetailedBuilder<'a, S> {
6241 pub fn debug(mut self, value: impl Into<Option<Data<'a>>>) -> Self {
6243 self._fields.4 = value.into();
6244 self
6245 }
6246 pub fn maybe_debug(mut self, value: Option<Data<'a>>) -> Self {
6248 self._fields.4 = value;
6249 self
6250 }
6251}
6252
6253impl<'a, S: profile_view_detailed_state::State> ProfileViewDetailedBuilder<'a, S> {
6254 pub fn description(mut self, value: impl Into<Option<CowStr<'a>>>) -> Self {
6256 self._fields.5 = value.into();
6257 self
6258 }
6259 pub fn maybe_description(mut self, value: Option<CowStr<'a>>) -> Self {
6261 self._fields.5 = value;
6262 self
6263 }
6264}
6265
6266impl<'a, S> ProfileViewDetailedBuilder<'a, S>
6267where
6268 S: profile_view_detailed_state::State,
6269 S::Did: profile_view_detailed_state::IsUnset,
6270{
6271 pub fn did(
6273 mut self,
6274 value: impl Into<Did<'a>>,
6275 ) -> ProfileViewDetailedBuilder<'a, profile_view_detailed_state::SetDid<S>> {
6276 self._fields.6 = Option::Some(value.into());
6277 ProfileViewDetailedBuilder {
6278 _state: PhantomData,
6279 _fields: self._fields,
6280 _lifetime: PhantomData,
6281 }
6282 }
6283}
6284
6285impl<'a, S: profile_view_detailed_state::State> ProfileViewDetailedBuilder<'a, S> {
6286 pub fn display_name(mut self, value: impl Into<Option<CowStr<'a>>>) -> Self {
6288 self._fields.7 = value.into();
6289 self
6290 }
6291 pub fn maybe_display_name(mut self, value: Option<CowStr<'a>>) -> Self {
6293 self._fields.7 = value;
6294 self
6295 }
6296}
6297
6298impl<'a, S: profile_view_detailed_state::State> ProfileViewDetailedBuilder<'a, S> {
6299 pub fn followers_count(mut self, value: impl Into<Option<i64>>) -> Self {
6301 self._fields.8 = value.into();
6302 self
6303 }
6304 pub fn maybe_followers_count(mut self, value: Option<i64>) -> Self {
6306 self._fields.8 = value;
6307 self
6308 }
6309}
6310
6311impl<'a, S: profile_view_detailed_state::State> ProfileViewDetailedBuilder<'a, S> {
6312 pub fn follows_count(mut self, value: impl Into<Option<i64>>) -> Self {
6314 self._fields.9 = value.into();
6315 self
6316 }
6317 pub fn maybe_follows_count(mut self, value: Option<i64>) -> Self {
6319 self._fields.9 = value;
6320 self
6321 }
6322}
6323
6324impl<'a, S> ProfileViewDetailedBuilder<'a, S>
6325where
6326 S: profile_view_detailed_state::State,
6327 S::Handle: profile_view_detailed_state::IsUnset,
6328{
6329 pub fn handle(
6331 mut self,
6332 value: impl Into<Handle<'a>>,
6333 ) -> ProfileViewDetailedBuilder<'a, profile_view_detailed_state::SetHandle<S>> {
6334 self._fields.10 = Option::Some(value.into());
6335 ProfileViewDetailedBuilder {
6336 _state: PhantomData,
6337 _fields: self._fields,
6338 _lifetime: PhantomData,
6339 }
6340 }
6341}
6342
6343impl<'a, S: profile_view_detailed_state::State> ProfileViewDetailedBuilder<'a, S> {
6344 pub fn indexed_at(mut self, value: impl Into<Option<Datetime>>) -> Self {
6346 self._fields.11 = value.into();
6347 self
6348 }
6349 pub fn maybe_indexed_at(mut self, value: Option<Datetime>) -> Self {
6351 self._fields.11 = value;
6352 self
6353 }
6354}
6355
6356impl<'a, S: profile_view_detailed_state::State> ProfileViewDetailedBuilder<'a, S> {
6357 pub fn joined_via_starter_pack(
6359 mut self,
6360 value: impl Into<Option<StarterPackViewBasic<'a>>>,
6361 ) -> Self {
6362 self._fields.12 = value.into();
6363 self
6364 }
6365 pub fn maybe_joined_via_starter_pack(
6367 mut self,
6368 value: Option<StarterPackViewBasic<'a>>,
6369 ) -> Self {
6370 self._fields.12 = value;
6371 self
6372 }
6373}
6374
6375impl<'a, S: profile_view_detailed_state::State> ProfileViewDetailedBuilder<'a, S> {
6376 pub fn labels(mut self, value: impl Into<Option<Vec<Label<'a>>>>) -> Self {
6378 self._fields.13 = value.into();
6379 self
6380 }
6381 pub fn maybe_labels(mut self, value: Option<Vec<Label<'a>>>) -> Self {
6383 self._fields.13 = value;
6384 self
6385 }
6386}
6387
6388impl<'a, S: profile_view_detailed_state::State> ProfileViewDetailedBuilder<'a, S> {
6389 pub fn pinned_post(mut self, value: impl Into<Option<StrongRef<'a>>>) -> Self {
6391 self._fields.14 = value.into();
6392 self
6393 }
6394 pub fn maybe_pinned_post(mut self, value: Option<StrongRef<'a>>) -> Self {
6396 self._fields.14 = value;
6397 self
6398 }
6399}
6400
6401impl<'a, S: profile_view_detailed_state::State> ProfileViewDetailedBuilder<'a, S> {
6402 pub fn posts_count(mut self, value: impl Into<Option<i64>>) -> Self {
6404 self._fields.15 = value.into();
6405 self
6406 }
6407 pub fn maybe_posts_count(mut self, value: Option<i64>) -> Self {
6409 self._fields.15 = value;
6410 self
6411 }
6412}
6413
6414impl<'a, S: profile_view_detailed_state::State> ProfileViewDetailedBuilder<'a, S> {
6415 pub fn pronouns(mut self, value: impl Into<Option<CowStr<'a>>>) -> Self {
6417 self._fields.16 = value.into();
6418 self
6419 }
6420 pub fn maybe_pronouns(mut self, value: Option<CowStr<'a>>) -> Self {
6422 self._fields.16 = value;
6423 self
6424 }
6425}
6426
6427impl<'a, S: profile_view_detailed_state::State> ProfileViewDetailedBuilder<'a, S> {
6428 pub fn status(mut self, value: impl Into<Option<actor::StatusView<'a>>>) -> Self {
6430 self._fields.17 = value.into();
6431 self
6432 }
6433 pub fn maybe_status(mut self, value: Option<actor::StatusView<'a>>) -> Self {
6435 self._fields.17 = value;
6436 self
6437 }
6438}
6439
6440impl<'a, S: profile_view_detailed_state::State> ProfileViewDetailedBuilder<'a, S> {
6441 pub fn verification(
6443 mut self,
6444 value: impl Into<Option<actor::VerificationState<'a>>>,
6445 ) -> Self {
6446 self._fields.18 = value.into();
6447 self
6448 }
6449 pub fn maybe_verification(
6451 mut self,
6452 value: Option<actor::VerificationState<'a>>,
6453 ) -> Self {
6454 self._fields.18 = value;
6455 self
6456 }
6457}
6458
6459impl<'a, S: profile_view_detailed_state::State> ProfileViewDetailedBuilder<'a, S> {
6460 pub fn viewer(mut self, value: impl Into<Option<actor::ViewerState<'a>>>) -> Self {
6462 self._fields.19 = value.into();
6463 self
6464 }
6465 pub fn maybe_viewer(mut self, value: Option<actor::ViewerState<'a>>) -> Self {
6467 self._fields.19 = value;
6468 self
6469 }
6470}
6471
6472impl<'a, S: profile_view_detailed_state::State> ProfileViewDetailedBuilder<'a, S> {
6473 pub fn website(mut self, value: impl Into<Option<UriValue<'a>>>) -> Self {
6475 self._fields.20 = value.into();
6476 self
6477 }
6478 pub fn maybe_website(mut self, value: Option<UriValue<'a>>) -> Self {
6480 self._fields.20 = value;
6481 self
6482 }
6483}
6484
6485impl<'a, S> ProfileViewDetailedBuilder<'a, S>
6486where
6487 S: profile_view_detailed_state::State,
6488 S::Did: profile_view_detailed_state::IsSet,
6489 S::Handle: profile_view_detailed_state::IsSet,
6490{
6491 pub fn build(self) -> ProfileViewDetailed<'a> {
6493 ProfileViewDetailed {
6494 associated: self._fields.0,
6495 avatar: self._fields.1,
6496 banner: self._fields.2,
6497 created_at: self._fields.3,
6498 debug: self._fields.4,
6499 description: self._fields.5,
6500 did: self._fields.6.unwrap(),
6501 display_name: self._fields.7,
6502 followers_count: self._fields.8,
6503 follows_count: self._fields.9,
6504 handle: self._fields.10.unwrap(),
6505 indexed_at: self._fields.11,
6506 joined_via_starter_pack: self._fields.12,
6507 labels: self._fields.13,
6508 pinned_post: self._fields.14,
6509 posts_count: self._fields.15,
6510 pronouns: self._fields.16,
6511 status: self._fields.17,
6512 verification: self._fields.18,
6513 viewer: self._fields.19,
6514 website: self._fields.20,
6515 extra_data: Default::default(),
6516 }
6517 }
6518 pub fn build_with_data(
6520 self,
6521 extra_data: BTreeMap<jacquard_common::deps::smol_str::SmolStr, Data<'a>>,
6522 ) -> ProfileViewDetailed<'a> {
6523 ProfileViewDetailed {
6524 associated: self._fields.0,
6525 avatar: self._fields.1,
6526 banner: self._fields.2,
6527 created_at: self._fields.3,
6528 debug: self._fields.4,
6529 description: self._fields.5,
6530 did: self._fields.6.unwrap(),
6531 display_name: self._fields.7,
6532 followers_count: self._fields.8,
6533 follows_count: self._fields.9,
6534 handle: self._fields.10.unwrap(),
6535 indexed_at: self._fields.11,
6536 joined_via_starter_pack: self._fields.12,
6537 labels: self._fields.13,
6538 pinned_post: self._fields.14,
6539 posts_count: self._fields.15,
6540 pronouns: self._fields.16,
6541 status: self._fields.17,
6542 verification: self._fields.18,
6543 viewer: self._fields.19,
6544 website: self._fields.20,
6545 extra_data: Some(extra_data),
6546 }
6547 }
6548}
6549
6550pub mod saved_feed_state {
6551
6552 pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
6553 #[allow(unused)]
6554 use ::core::marker::PhantomData;
6555 mod sealed {
6556 pub trait Sealed {}
6557 }
6558 pub trait State: sealed::Sealed {
6560 type Pinned;
6561 type Type;
6562 type Id;
6563 type Value;
6564 }
6565 pub struct Empty(());
6567 impl sealed::Sealed for Empty {}
6568 impl State for Empty {
6569 type Pinned = Unset;
6570 type Type = Unset;
6571 type Id = Unset;
6572 type Value = Unset;
6573 }
6574 pub struct SetPinned<S: State = Empty>(PhantomData<fn() -> S>);
6576 impl<S: State> sealed::Sealed for SetPinned<S> {}
6577 impl<S: State> State for SetPinned<S> {
6578 type Pinned = Set<members::pinned>;
6579 type Type = S::Type;
6580 type Id = S::Id;
6581 type Value = S::Value;
6582 }
6583 pub struct SetType<S: State = Empty>(PhantomData<fn() -> S>);
6585 impl<S: State> sealed::Sealed for SetType<S> {}
6586 impl<S: State> State for SetType<S> {
6587 type Pinned = S::Pinned;
6588 type Type = Set<members::r#type>;
6589 type Id = S::Id;
6590 type Value = S::Value;
6591 }
6592 pub struct SetId<S: State = Empty>(PhantomData<fn() -> S>);
6594 impl<S: State> sealed::Sealed for SetId<S> {}
6595 impl<S: State> State for SetId<S> {
6596 type Pinned = S::Pinned;
6597 type Type = S::Type;
6598 type Id = Set<members::id>;
6599 type Value = S::Value;
6600 }
6601 pub struct SetValue<S: State = Empty>(PhantomData<fn() -> S>);
6603 impl<S: State> sealed::Sealed for SetValue<S> {}
6604 impl<S: State> State for SetValue<S> {
6605 type Pinned = S::Pinned;
6606 type Type = S::Type;
6607 type Id = S::Id;
6608 type Value = Set<members::value>;
6609 }
6610 #[allow(non_camel_case_types)]
6612 pub mod members {
6613 pub struct pinned(());
6615 pub struct r#type(());
6617 pub struct id(());
6619 pub struct value(());
6621 }
6622}
6623
6624pub struct SavedFeedBuilder<'a, S: saved_feed_state::State> {
6626 _state: PhantomData<fn() -> S>,
6627 _fields: (
6628 Option<CowStr<'a>>,
6629 Option<bool>,
6630 Option<SavedFeedType<'a>>,
6631 Option<CowStr<'a>>,
6632 ),
6633 _lifetime: PhantomData<&'a ()>,
6634}
6635
6636impl<'a> SavedFeed<'a> {
6637 pub fn new() -> SavedFeedBuilder<'a, saved_feed_state::Empty> {
6639 SavedFeedBuilder::new()
6640 }
6641}
6642
6643impl<'a> SavedFeedBuilder<'a, saved_feed_state::Empty> {
6644 pub fn new() -> Self {
6646 SavedFeedBuilder {
6647 _state: PhantomData,
6648 _fields: (None, None, None, None),
6649 _lifetime: PhantomData,
6650 }
6651 }
6652}
6653
6654impl<'a, S> SavedFeedBuilder<'a, S>
6655where
6656 S: saved_feed_state::State,
6657 S::Id: saved_feed_state::IsUnset,
6658{
6659 pub fn id(
6661 mut self,
6662 value: impl Into<CowStr<'a>>,
6663 ) -> SavedFeedBuilder<'a, saved_feed_state::SetId<S>> {
6664 self._fields.0 = Option::Some(value.into());
6665 SavedFeedBuilder {
6666 _state: PhantomData,
6667 _fields: self._fields,
6668 _lifetime: PhantomData,
6669 }
6670 }
6671}
6672
6673impl<'a, S> SavedFeedBuilder<'a, S>
6674where
6675 S: saved_feed_state::State,
6676 S::Pinned: saved_feed_state::IsUnset,
6677{
6678 pub fn pinned(
6680 mut self,
6681 value: impl Into<bool>,
6682 ) -> SavedFeedBuilder<'a, saved_feed_state::SetPinned<S>> {
6683 self._fields.1 = Option::Some(value.into());
6684 SavedFeedBuilder {
6685 _state: PhantomData,
6686 _fields: self._fields,
6687 _lifetime: PhantomData,
6688 }
6689 }
6690}
6691
6692impl<'a, S> SavedFeedBuilder<'a, S>
6693where
6694 S: saved_feed_state::State,
6695 S::Type: saved_feed_state::IsUnset,
6696{
6697 pub fn r#type(
6699 mut self,
6700 value: impl Into<SavedFeedType<'a>>,
6701 ) -> SavedFeedBuilder<'a, saved_feed_state::SetType<S>> {
6702 self._fields.2 = Option::Some(value.into());
6703 SavedFeedBuilder {
6704 _state: PhantomData,
6705 _fields: self._fields,
6706 _lifetime: PhantomData,
6707 }
6708 }
6709}
6710
6711impl<'a, S> SavedFeedBuilder<'a, S>
6712where
6713 S: saved_feed_state::State,
6714 S::Value: saved_feed_state::IsUnset,
6715{
6716 pub fn value(
6718 mut self,
6719 value: impl Into<CowStr<'a>>,
6720 ) -> SavedFeedBuilder<'a, saved_feed_state::SetValue<S>> {
6721 self._fields.3 = Option::Some(value.into());
6722 SavedFeedBuilder {
6723 _state: PhantomData,
6724 _fields: self._fields,
6725 _lifetime: PhantomData,
6726 }
6727 }
6728}
6729
6730impl<'a, S> SavedFeedBuilder<'a, S>
6731where
6732 S: saved_feed_state::State,
6733 S::Pinned: saved_feed_state::IsSet,
6734 S::Type: saved_feed_state::IsSet,
6735 S::Id: saved_feed_state::IsSet,
6736 S::Value: saved_feed_state::IsSet,
6737{
6738 pub fn build(self) -> SavedFeed<'a> {
6740 SavedFeed {
6741 id: self._fields.0.unwrap(),
6742 pinned: self._fields.1.unwrap(),
6743 r#type: self._fields.2.unwrap(),
6744 value: self._fields.3.unwrap(),
6745 extra_data: Default::default(),
6746 }
6747 }
6748 pub fn build_with_data(
6750 self,
6751 extra_data: BTreeMap<jacquard_common::deps::smol_str::SmolStr, Data<'a>>,
6752 ) -> SavedFeed<'a> {
6753 SavedFeed {
6754 id: self._fields.0.unwrap(),
6755 pinned: self._fields.1.unwrap(),
6756 r#type: self._fields.2.unwrap(),
6757 value: self._fields.3.unwrap(),
6758 extra_data: Some(extra_data),
6759 }
6760 }
6761}
6762
6763pub mod saved_feeds_pref_state {
6764
6765 pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
6766 #[allow(unused)]
6767 use ::core::marker::PhantomData;
6768 mod sealed {
6769 pub trait Sealed {}
6770 }
6771 pub trait State: sealed::Sealed {
6773 type Saved;
6774 type Pinned;
6775 }
6776 pub struct Empty(());
6778 impl sealed::Sealed for Empty {}
6779 impl State for Empty {
6780 type Saved = Unset;
6781 type Pinned = Unset;
6782 }
6783 pub struct SetSaved<S: State = Empty>(PhantomData<fn() -> S>);
6785 impl<S: State> sealed::Sealed for SetSaved<S> {}
6786 impl<S: State> State for SetSaved<S> {
6787 type Saved = Set<members::saved>;
6788 type Pinned = S::Pinned;
6789 }
6790 pub struct SetPinned<S: State = Empty>(PhantomData<fn() -> S>);
6792 impl<S: State> sealed::Sealed for SetPinned<S> {}
6793 impl<S: State> State for SetPinned<S> {
6794 type Saved = S::Saved;
6795 type Pinned = Set<members::pinned>;
6796 }
6797 #[allow(non_camel_case_types)]
6799 pub mod members {
6800 pub struct saved(());
6802 pub struct pinned(());
6804 }
6805}
6806
6807pub struct SavedFeedsPrefBuilder<'a, S: saved_feeds_pref_state::State> {
6809 _state: PhantomData<fn() -> S>,
6810 _fields: (Option<Vec<AtUri<'a>>>, Option<Vec<AtUri<'a>>>, Option<i64>),
6811 _lifetime: PhantomData<&'a ()>,
6812}
6813
6814impl<'a> SavedFeedsPref<'a> {
6815 pub fn new() -> SavedFeedsPrefBuilder<'a, saved_feeds_pref_state::Empty> {
6817 SavedFeedsPrefBuilder::new()
6818 }
6819}
6820
6821impl<'a> SavedFeedsPrefBuilder<'a, saved_feeds_pref_state::Empty> {
6822 pub fn new() -> Self {
6824 SavedFeedsPrefBuilder {
6825 _state: PhantomData,
6826 _fields: (None, None, None),
6827 _lifetime: PhantomData,
6828 }
6829 }
6830}
6831
6832impl<'a, S> SavedFeedsPrefBuilder<'a, S>
6833where
6834 S: saved_feeds_pref_state::State,
6835 S::Pinned: saved_feeds_pref_state::IsUnset,
6836{
6837 pub fn pinned(
6839 mut self,
6840 value: impl Into<Vec<AtUri<'a>>>,
6841 ) -> SavedFeedsPrefBuilder<'a, saved_feeds_pref_state::SetPinned<S>> {
6842 self._fields.0 = Option::Some(value.into());
6843 SavedFeedsPrefBuilder {
6844 _state: PhantomData,
6845 _fields: self._fields,
6846 _lifetime: PhantomData,
6847 }
6848 }
6849}
6850
6851impl<'a, S> SavedFeedsPrefBuilder<'a, S>
6852where
6853 S: saved_feeds_pref_state::State,
6854 S::Saved: saved_feeds_pref_state::IsUnset,
6855{
6856 pub fn saved(
6858 mut self,
6859 value: impl Into<Vec<AtUri<'a>>>,
6860 ) -> SavedFeedsPrefBuilder<'a, saved_feeds_pref_state::SetSaved<S>> {
6861 self._fields.1 = Option::Some(value.into());
6862 SavedFeedsPrefBuilder {
6863 _state: PhantomData,
6864 _fields: self._fields,
6865 _lifetime: PhantomData,
6866 }
6867 }
6868}
6869
6870impl<'a, S: saved_feeds_pref_state::State> SavedFeedsPrefBuilder<'a, S> {
6871 pub fn timeline_index(mut self, value: impl Into<Option<i64>>) -> Self {
6873 self._fields.2 = value.into();
6874 self
6875 }
6876 pub fn maybe_timeline_index(mut self, value: Option<i64>) -> Self {
6878 self._fields.2 = value;
6879 self
6880 }
6881}
6882
6883impl<'a, S> SavedFeedsPrefBuilder<'a, S>
6884where
6885 S: saved_feeds_pref_state::State,
6886 S::Saved: saved_feeds_pref_state::IsSet,
6887 S::Pinned: saved_feeds_pref_state::IsSet,
6888{
6889 pub fn build(self) -> SavedFeedsPref<'a> {
6891 SavedFeedsPref {
6892 pinned: self._fields.0.unwrap(),
6893 saved: self._fields.1.unwrap(),
6894 timeline_index: self._fields.2,
6895 extra_data: Default::default(),
6896 }
6897 }
6898 pub fn build_with_data(
6900 self,
6901 extra_data: BTreeMap<jacquard_common::deps::smol_str::SmolStr, Data<'a>>,
6902 ) -> SavedFeedsPref<'a> {
6903 SavedFeedsPref {
6904 pinned: self._fields.0.unwrap(),
6905 saved: self._fields.1.unwrap(),
6906 timeline_index: self._fields.2,
6907 extra_data: Some(extra_data),
6908 }
6909 }
6910}
6911
6912pub mod saved_feeds_pref_v2_state {
6913
6914 pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
6915 #[allow(unused)]
6916 use ::core::marker::PhantomData;
6917 mod sealed {
6918 pub trait Sealed {}
6919 }
6920 pub trait State: sealed::Sealed {
6922 type Items;
6923 }
6924 pub struct Empty(());
6926 impl sealed::Sealed for Empty {}
6927 impl State for Empty {
6928 type Items = Unset;
6929 }
6930 pub struct SetItems<S: State = Empty>(PhantomData<fn() -> S>);
6932 impl<S: State> sealed::Sealed for SetItems<S> {}
6933 impl<S: State> State for SetItems<S> {
6934 type Items = Set<members::items>;
6935 }
6936 #[allow(non_camel_case_types)]
6938 pub mod members {
6939 pub struct items(());
6941 }
6942}
6943
6944pub struct SavedFeedsPrefV2Builder<'a, S: saved_feeds_pref_v2_state::State> {
6946 _state: PhantomData<fn() -> S>,
6947 _fields: (Option<Vec<actor::SavedFeed<'a>>>,),
6948 _lifetime: PhantomData<&'a ()>,
6949}
6950
6951impl<'a> SavedFeedsPrefV2<'a> {
6952 pub fn new() -> SavedFeedsPrefV2Builder<'a, saved_feeds_pref_v2_state::Empty> {
6954 SavedFeedsPrefV2Builder::new()
6955 }
6956}
6957
6958impl<'a> SavedFeedsPrefV2Builder<'a, saved_feeds_pref_v2_state::Empty> {
6959 pub fn new() -> Self {
6961 SavedFeedsPrefV2Builder {
6962 _state: PhantomData,
6963 _fields: (None,),
6964 _lifetime: PhantomData,
6965 }
6966 }
6967}
6968
6969impl<'a, S> SavedFeedsPrefV2Builder<'a, S>
6970where
6971 S: saved_feeds_pref_v2_state::State,
6972 S::Items: saved_feeds_pref_v2_state::IsUnset,
6973{
6974 pub fn items(
6976 mut self,
6977 value: impl Into<Vec<actor::SavedFeed<'a>>>,
6978 ) -> SavedFeedsPrefV2Builder<'a, saved_feeds_pref_v2_state::SetItems<S>> {
6979 self._fields.0 = Option::Some(value.into());
6980 SavedFeedsPrefV2Builder {
6981 _state: PhantomData,
6982 _fields: self._fields,
6983 _lifetime: PhantomData,
6984 }
6985 }
6986}
6987
6988impl<'a, S> SavedFeedsPrefV2Builder<'a, S>
6989where
6990 S: saved_feeds_pref_v2_state::State,
6991 S::Items: saved_feeds_pref_v2_state::IsSet,
6992{
6993 pub fn build(self) -> SavedFeedsPrefV2<'a> {
6995 SavedFeedsPrefV2 {
6996 items: self._fields.0.unwrap(),
6997 extra_data: Default::default(),
6998 }
6999 }
7000 pub fn build_with_data(
7002 self,
7003 extra_data: BTreeMap<jacquard_common::deps::smol_str::SmolStr, Data<'a>>,
7004 ) -> SavedFeedsPrefV2<'a> {
7005 SavedFeedsPrefV2 {
7006 items: self._fields.0.unwrap(),
7007 extra_data: Some(extra_data),
7008 }
7009 }
7010}
7011
7012pub mod status_view_state {
7013
7014 pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
7015 #[allow(unused)]
7016 use ::core::marker::PhantomData;
7017 mod sealed {
7018 pub trait Sealed {}
7019 }
7020 pub trait State: sealed::Sealed {
7022 type Status;
7023 type Record;
7024 }
7025 pub struct Empty(());
7027 impl sealed::Sealed for Empty {}
7028 impl State for Empty {
7029 type Status = Unset;
7030 type Record = Unset;
7031 }
7032 pub struct SetStatus<S: State = Empty>(PhantomData<fn() -> S>);
7034 impl<S: State> sealed::Sealed for SetStatus<S> {}
7035 impl<S: State> State for SetStatus<S> {
7036 type Status = Set<members::status>;
7037 type Record = S::Record;
7038 }
7039 pub struct SetRecord<S: State = Empty>(PhantomData<fn() -> S>);
7041 impl<S: State> sealed::Sealed for SetRecord<S> {}
7042 impl<S: State> State for SetRecord<S> {
7043 type Status = S::Status;
7044 type Record = Set<members::record>;
7045 }
7046 #[allow(non_camel_case_types)]
7048 pub mod members {
7049 pub struct status(());
7051 pub struct record(());
7053 }
7054}
7055
7056pub struct StatusViewBuilder<'a, S: status_view_state::State> {
7058 _state: PhantomData<fn() -> S>,
7059 _fields: (
7060 Option<Cid<'a>>,
7061 Option<View<'a>>,
7062 Option<Datetime>,
7063 Option<bool>,
7064 Option<bool>,
7065 Option<Data<'a>>,
7066 Option<StatusViewStatus<'a>>,
7067 Option<AtUri<'a>>,
7068 ),
7069 _lifetime: PhantomData<&'a ()>,
7070}
7071
7072impl<'a> StatusView<'a> {
7073 pub fn new() -> StatusViewBuilder<'a, status_view_state::Empty> {
7075 StatusViewBuilder::new()
7076 }
7077}
7078
7079impl<'a> StatusViewBuilder<'a, status_view_state::Empty> {
7080 pub fn new() -> Self {
7082 StatusViewBuilder {
7083 _state: PhantomData,
7084 _fields: (None, None, None, None, None, None, None, None),
7085 _lifetime: PhantomData,
7086 }
7087 }
7088}
7089
7090impl<'a, S: status_view_state::State> StatusViewBuilder<'a, S> {
7091 pub fn cid(mut self, value: impl Into<Option<Cid<'a>>>) -> Self {
7093 self._fields.0 = value.into();
7094 self
7095 }
7096 pub fn maybe_cid(mut self, value: Option<Cid<'a>>) -> Self {
7098 self._fields.0 = value;
7099 self
7100 }
7101}
7102
7103impl<'a, S: status_view_state::State> StatusViewBuilder<'a, S> {
7104 pub fn embed(mut self, value: impl Into<Option<View<'a>>>) -> Self {
7106 self._fields.1 = value.into();
7107 self
7108 }
7109 pub fn maybe_embed(mut self, value: Option<View<'a>>) -> Self {
7111 self._fields.1 = value;
7112 self
7113 }
7114}
7115
7116impl<'a, S: status_view_state::State> StatusViewBuilder<'a, S> {
7117 pub fn expires_at(mut self, value: impl Into<Option<Datetime>>) -> Self {
7119 self._fields.2 = value.into();
7120 self
7121 }
7122 pub fn maybe_expires_at(mut self, value: Option<Datetime>) -> Self {
7124 self._fields.2 = value;
7125 self
7126 }
7127}
7128
7129impl<'a, S: status_view_state::State> StatusViewBuilder<'a, S> {
7130 pub fn is_active(mut self, value: impl Into<Option<bool>>) -> Self {
7132 self._fields.3 = value.into();
7133 self
7134 }
7135 pub fn maybe_is_active(mut self, value: Option<bool>) -> Self {
7137 self._fields.3 = value;
7138 self
7139 }
7140}
7141
7142impl<'a, S: status_view_state::State> StatusViewBuilder<'a, S> {
7143 pub fn is_disabled(mut self, value: impl Into<Option<bool>>) -> Self {
7145 self._fields.4 = value.into();
7146 self
7147 }
7148 pub fn maybe_is_disabled(mut self, value: Option<bool>) -> Self {
7150 self._fields.4 = value;
7151 self
7152 }
7153}
7154
7155impl<'a, S> StatusViewBuilder<'a, S>
7156where
7157 S: status_view_state::State,
7158 S::Record: status_view_state::IsUnset,
7159{
7160 pub fn record(
7162 mut self,
7163 value: impl Into<Data<'a>>,
7164 ) -> StatusViewBuilder<'a, status_view_state::SetRecord<S>> {
7165 self._fields.5 = Option::Some(value.into());
7166 StatusViewBuilder {
7167 _state: PhantomData,
7168 _fields: self._fields,
7169 _lifetime: PhantomData,
7170 }
7171 }
7172}
7173
7174impl<'a, S> StatusViewBuilder<'a, S>
7175where
7176 S: status_view_state::State,
7177 S::Status: status_view_state::IsUnset,
7178{
7179 pub fn status(
7181 mut self,
7182 value: impl Into<StatusViewStatus<'a>>,
7183 ) -> StatusViewBuilder<'a, status_view_state::SetStatus<S>> {
7184 self._fields.6 = Option::Some(value.into());
7185 StatusViewBuilder {
7186 _state: PhantomData,
7187 _fields: self._fields,
7188 _lifetime: PhantomData,
7189 }
7190 }
7191}
7192
7193impl<'a, S: status_view_state::State> StatusViewBuilder<'a, S> {
7194 pub fn uri(mut self, value: impl Into<Option<AtUri<'a>>>) -> Self {
7196 self._fields.7 = value.into();
7197 self
7198 }
7199 pub fn maybe_uri(mut self, value: Option<AtUri<'a>>) -> Self {
7201 self._fields.7 = value;
7202 self
7203 }
7204}
7205
7206impl<'a, S> StatusViewBuilder<'a, S>
7207where
7208 S: status_view_state::State,
7209 S::Status: status_view_state::IsSet,
7210 S::Record: status_view_state::IsSet,
7211{
7212 pub fn build(self) -> StatusView<'a> {
7214 StatusView {
7215 cid: self._fields.0,
7216 embed: self._fields.1,
7217 expires_at: self._fields.2,
7218 is_active: self._fields.3,
7219 is_disabled: self._fields.4,
7220 record: self._fields.5.unwrap(),
7221 status: self._fields.6.unwrap(),
7222 uri: self._fields.7,
7223 extra_data: Default::default(),
7224 }
7225 }
7226 pub fn build_with_data(
7228 self,
7229 extra_data: BTreeMap<jacquard_common::deps::smol_str::SmolStr, Data<'a>>,
7230 ) -> StatusView<'a> {
7231 StatusView {
7232 cid: self._fields.0,
7233 embed: self._fields.1,
7234 expires_at: self._fields.2,
7235 is_active: self._fields.3,
7236 is_disabled: self._fields.4,
7237 record: self._fields.5.unwrap(),
7238 status: self._fields.6.unwrap(),
7239 uri: self._fields.7,
7240 extra_data: Some(extra_data),
7241 }
7242 }
7243}
7244
7245fn _default_verification_prefs_hide_badges() -> Option<bool> {
7246 Some(false)
7247}
7248
7249impl Default for VerificationPrefs<'_> {
7250 fn default() -> Self {
7251 Self {
7252 hide_badges: Some(false),
7253 extra_data: Default::default(),
7254 }
7255 }
7256}
7257
7258pub mod verification_state_state {
7259
7260 pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
7261 #[allow(unused)]
7262 use ::core::marker::PhantomData;
7263 mod sealed {
7264 pub trait Sealed {}
7265 }
7266 pub trait State: sealed::Sealed {
7268 type TrustedVerifierStatus;
7269 type VerifiedStatus;
7270 type Verifications;
7271 }
7272 pub struct Empty(());
7274 impl sealed::Sealed for Empty {}
7275 impl State for Empty {
7276 type TrustedVerifierStatus = Unset;
7277 type VerifiedStatus = Unset;
7278 type Verifications = Unset;
7279 }
7280 pub struct SetTrustedVerifierStatus<S: State = Empty>(PhantomData<fn() -> S>);
7282 impl<S: State> sealed::Sealed for SetTrustedVerifierStatus<S> {}
7283 impl<S: State> State for SetTrustedVerifierStatus<S> {
7284 type TrustedVerifierStatus = Set<members::trusted_verifier_status>;
7285 type VerifiedStatus = S::VerifiedStatus;
7286 type Verifications = S::Verifications;
7287 }
7288 pub struct SetVerifiedStatus<S: State = Empty>(PhantomData<fn() -> S>);
7290 impl<S: State> sealed::Sealed for SetVerifiedStatus<S> {}
7291 impl<S: State> State for SetVerifiedStatus<S> {
7292 type TrustedVerifierStatus = S::TrustedVerifierStatus;
7293 type VerifiedStatus = Set<members::verified_status>;
7294 type Verifications = S::Verifications;
7295 }
7296 pub struct SetVerifications<S: State = Empty>(PhantomData<fn() -> S>);
7298 impl<S: State> sealed::Sealed for SetVerifications<S> {}
7299 impl<S: State> State for SetVerifications<S> {
7300 type TrustedVerifierStatus = S::TrustedVerifierStatus;
7301 type VerifiedStatus = S::VerifiedStatus;
7302 type Verifications = Set<members::verifications>;
7303 }
7304 #[allow(non_camel_case_types)]
7306 pub mod members {
7307 pub struct trusted_verifier_status(());
7309 pub struct verified_status(());
7311 pub struct verifications(());
7313 }
7314}
7315
7316pub struct VerificationStateBuilder<'a, S: verification_state_state::State> {
7318 _state: PhantomData<fn() -> S>,
7319 _fields: (
7320 Option<VerificationStateTrustedVerifierStatus<'a>>,
7321 Option<Vec<actor::VerificationView<'a>>>,
7322 Option<VerificationStateVerifiedStatus<'a>>,
7323 ),
7324 _lifetime: PhantomData<&'a ()>,
7325}
7326
7327impl<'a> VerificationState<'a> {
7328 pub fn new() -> VerificationStateBuilder<'a, verification_state_state::Empty> {
7330 VerificationStateBuilder::new()
7331 }
7332}
7333
7334impl<'a> VerificationStateBuilder<'a, verification_state_state::Empty> {
7335 pub fn new() -> Self {
7337 VerificationStateBuilder {
7338 _state: PhantomData,
7339 _fields: (None, None, None),
7340 _lifetime: PhantomData,
7341 }
7342 }
7343}
7344
7345impl<'a, S> VerificationStateBuilder<'a, S>
7346where
7347 S: verification_state_state::State,
7348 S::TrustedVerifierStatus: verification_state_state::IsUnset,
7349{
7350 pub fn trusted_verifier_status(
7352 mut self,
7353 value: impl Into<VerificationStateTrustedVerifierStatus<'a>>,
7354 ) -> VerificationStateBuilder<
7355 'a,
7356 verification_state_state::SetTrustedVerifierStatus<S>,
7357 > {
7358 self._fields.0 = Option::Some(value.into());
7359 VerificationStateBuilder {
7360 _state: PhantomData,
7361 _fields: self._fields,
7362 _lifetime: PhantomData,
7363 }
7364 }
7365}
7366
7367impl<'a, S> VerificationStateBuilder<'a, S>
7368where
7369 S: verification_state_state::State,
7370 S::Verifications: verification_state_state::IsUnset,
7371{
7372 pub fn verifications(
7374 mut self,
7375 value: impl Into<Vec<actor::VerificationView<'a>>>,
7376 ) -> VerificationStateBuilder<'a, verification_state_state::SetVerifications<S>> {
7377 self._fields.1 = Option::Some(value.into());
7378 VerificationStateBuilder {
7379 _state: PhantomData,
7380 _fields: self._fields,
7381 _lifetime: PhantomData,
7382 }
7383 }
7384}
7385
7386impl<'a, S> VerificationStateBuilder<'a, S>
7387where
7388 S: verification_state_state::State,
7389 S::VerifiedStatus: verification_state_state::IsUnset,
7390{
7391 pub fn verified_status(
7393 mut self,
7394 value: impl Into<VerificationStateVerifiedStatus<'a>>,
7395 ) -> VerificationStateBuilder<'a, verification_state_state::SetVerifiedStatus<S>> {
7396 self._fields.2 = Option::Some(value.into());
7397 VerificationStateBuilder {
7398 _state: PhantomData,
7399 _fields: self._fields,
7400 _lifetime: PhantomData,
7401 }
7402 }
7403}
7404
7405impl<'a, S> VerificationStateBuilder<'a, S>
7406where
7407 S: verification_state_state::State,
7408 S::TrustedVerifierStatus: verification_state_state::IsSet,
7409 S::VerifiedStatus: verification_state_state::IsSet,
7410 S::Verifications: verification_state_state::IsSet,
7411{
7412 pub fn build(self) -> VerificationState<'a> {
7414 VerificationState {
7415 trusted_verifier_status: self._fields.0.unwrap(),
7416 verifications: self._fields.1.unwrap(),
7417 verified_status: self._fields.2.unwrap(),
7418 extra_data: Default::default(),
7419 }
7420 }
7421 pub fn build_with_data(
7423 self,
7424 extra_data: BTreeMap<jacquard_common::deps::smol_str::SmolStr, Data<'a>>,
7425 ) -> VerificationState<'a> {
7426 VerificationState {
7427 trusted_verifier_status: self._fields.0.unwrap(),
7428 verifications: self._fields.1.unwrap(),
7429 verified_status: self._fields.2.unwrap(),
7430 extra_data: Some(extra_data),
7431 }
7432 }
7433}
7434
7435pub mod verification_view_state {
7436
7437 pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
7438 #[allow(unused)]
7439 use ::core::marker::PhantomData;
7440 mod sealed {
7441 pub trait Sealed {}
7442 }
7443 pub trait State: sealed::Sealed {
7445 type IsValid;
7446 type Issuer;
7447 type CreatedAt;
7448 type Uri;
7449 }
7450 pub struct Empty(());
7452 impl sealed::Sealed for Empty {}
7453 impl State for Empty {
7454 type IsValid = Unset;
7455 type Issuer = Unset;
7456 type CreatedAt = Unset;
7457 type Uri = Unset;
7458 }
7459 pub struct SetIsValid<S: State = Empty>(PhantomData<fn() -> S>);
7461 impl<S: State> sealed::Sealed for SetIsValid<S> {}
7462 impl<S: State> State for SetIsValid<S> {
7463 type IsValid = Set<members::is_valid>;
7464 type Issuer = S::Issuer;
7465 type CreatedAt = S::CreatedAt;
7466 type Uri = S::Uri;
7467 }
7468 pub struct SetIssuer<S: State = Empty>(PhantomData<fn() -> S>);
7470 impl<S: State> sealed::Sealed for SetIssuer<S> {}
7471 impl<S: State> State for SetIssuer<S> {
7472 type IsValid = S::IsValid;
7473 type Issuer = Set<members::issuer>;
7474 type CreatedAt = S::CreatedAt;
7475 type Uri = S::Uri;
7476 }
7477 pub struct SetCreatedAt<S: State = Empty>(PhantomData<fn() -> S>);
7479 impl<S: State> sealed::Sealed for SetCreatedAt<S> {}
7480 impl<S: State> State for SetCreatedAt<S> {
7481 type IsValid = S::IsValid;
7482 type Issuer = S::Issuer;
7483 type CreatedAt = Set<members::created_at>;
7484 type Uri = S::Uri;
7485 }
7486 pub struct SetUri<S: State = Empty>(PhantomData<fn() -> S>);
7488 impl<S: State> sealed::Sealed for SetUri<S> {}
7489 impl<S: State> State for SetUri<S> {
7490 type IsValid = S::IsValid;
7491 type Issuer = S::Issuer;
7492 type CreatedAt = S::CreatedAt;
7493 type Uri = Set<members::uri>;
7494 }
7495 #[allow(non_camel_case_types)]
7497 pub mod members {
7498 pub struct is_valid(());
7500 pub struct issuer(());
7502 pub struct created_at(());
7504 pub struct uri(());
7506 }
7507}
7508
7509pub struct VerificationViewBuilder<'a, S: verification_view_state::State> {
7511 _state: PhantomData<fn() -> S>,
7512 _fields: (Option<Datetime>, Option<bool>, Option<Did<'a>>, Option<AtUri<'a>>),
7513 _lifetime: PhantomData<&'a ()>,
7514}
7515
7516impl<'a> VerificationView<'a> {
7517 pub fn new() -> VerificationViewBuilder<'a, verification_view_state::Empty> {
7519 VerificationViewBuilder::new()
7520 }
7521}
7522
7523impl<'a> VerificationViewBuilder<'a, verification_view_state::Empty> {
7524 pub fn new() -> Self {
7526 VerificationViewBuilder {
7527 _state: PhantomData,
7528 _fields: (None, None, None, None),
7529 _lifetime: PhantomData,
7530 }
7531 }
7532}
7533
7534impl<'a, S> VerificationViewBuilder<'a, S>
7535where
7536 S: verification_view_state::State,
7537 S::CreatedAt: verification_view_state::IsUnset,
7538{
7539 pub fn created_at(
7541 mut self,
7542 value: impl Into<Datetime>,
7543 ) -> VerificationViewBuilder<'a, verification_view_state::SetCreatedAt<S>> {
7544 self._fields.0 = Option::Some(value.into());
7545 VerificationViewBuilder {
7546 _state: PhantomData,
7547 _fields: self._fields,
7548 _lifetime: PhantomData,
7549 }
7550 }
7551}
7552
7553impl<'a, S> VerificationViewBuilder<'a, S>
7554where
7555 S: verification_view_state::State,
7556 S::IsValid: verification_view_state::IsUnset,
7557{
7558 pub fn is_valid(
7560 mut self,
7561 value: impl Into<bool>,
7562 ) -> VerificationViewBuilder<'a, verification_view_state::SetIsValid<S>> {
7563 self._fields.1 = Option::Some(value.into());
7564 VerificationViewBuilder {
7565 _state: PhantomData,
7566 _fields: self._fields,
7567 _lifetime: PhantomData,
7568 }
7569 }
7570}
7571
7572impl<'a, S> VerificationViewBuilder<'a, S>
7573where
7574 S: verification_view_state::State,
7575 S::Issuer: verification_view_state::IsUnset,
7576{
7577 pub fn issuer(
7579 mut self,
7580 value: impl Into<Did<'a>>,
7581 ) -> VerificationViewBuilder<'a, verification_view_state::SetIssuer<S>> {
7582 self._fields.2 = Option::Some(value.into());
7583 VerificationViewBuilder {
7584 _state: PhantomData,
7585 _fields: self._fields,
7586 _lifetime: PhantomData,
7587 }
7588 }
7589}
7590
7591impl<'a, S> VerificationViewBuilder<'a, S>
7592where
7593 S: verification_view_state::State,
7594 S::Uri: verification_view_state::IsUnset,
7595{
7596 pub fn uri(
7598 mut self,
7599 value: impl Into<AtUri<'a>>,
7600 ) -> VerificationViewBuilder<'a, verification_view_state::SetUri<S>> {
7601 self._fields.3 = Option::Some(value.into());
7602 VerificationViewBuilder {
7603 _state: PhantomData,
7604 _fields: self._fields,
7605 _lifetime: PhantomData,
7606 }
7607 }
7608}
7609
7610impl<'a, S> VerificationViewBuilder<'a, S>
7611where
7612 S: verification_view_state::State,
7613 S::IsValid: verification_view_state::IsSet,
7614 S::Issuer: verification_view_state::IsSet,
7615 S::CreatedAt: verification_view_state::IsSet,
7616 S::Uri: verification_view_state::IsSet,
7617{
7618 pub fn build(self) -> VerificationView<'a> {
7620 VerificationView {
7621 created_at: self._fields.0.unwrap(),
7622 is_valid: self._fields.1.unwrap(),
7623 issuer: self._fields.2.unwrap(),
7624 uri: self._fields.3.unwrap(),
7625 extra_data: Default::default(),
7626 }
7627 }
7628 pub fn build_with_data(
7630 self,
7631 extra_data: BTreeMap<jacquard_common::deps::smol_str::SmolStr, Data<'a>>,
7632 ) -> VerificationView<'a> {
7633 VerificationView {
7634 created_at: self._fields.0.unwrap(),
7635 is_valid: self._fields.1.unwrap(),
7636 issuer: self._fields.2.unwrap(),
7637 uri: self._fields.3.unwrap(),
7638 extra_data: Some(extra_data),
7639 }
7640 }
7641}