atproto blogging
1// @generated by jacquard-lexicon. DO NOT EDIT.
2//
3// Lexicon: app.bsky.notification.defs
4//
5// This file was automatically generated from Lexicon schemas.
6// Any manual changes will be overwritten on the next regeneration.
7
8pub mod declaration;
9pub mod get_preferences;
10pub mod get_unread_count;
11pub mod list_activity_subscriptions;
12pub mod list_notifications;
13pub mod put_activity_subscription;
14pub mod put_preferences;
15pub mod put_preferences_v2;
16pub mod register_push;
17pub mod unregister_push;
18pub mod update_seen;
19
20#[jacquard_derive::lexicon]
21#[derive(
22 serde::Serialize,
23 serde::Deserialize,
24 Debug,
25 Clone,
26 PartialEq,
27 Eq,
28 jacquard_derive::IntoStatic
29)]
30#[serde(rename_all = "camelCase")]
31pub struct ActivitySubscription<'a> {
32 pub post: bool,
33 pub reply: bool,
34}
35
36pub mod activity_subscription_state {
37
38 pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
39 #[allow(unused)]
40 use ::core::marker::PhantomData;
41 mod sealed {
42 pub trait Sealed {}
43 }
44 /// State trait tracking which required fields have been set
45 pub trait State: sealed::Sealed {
46 type Reply;
47 type Post;
48 }
49 /// Empty state - all required fields are unset
50 pub struct Empty(());
51 impl sealed::Sealed for Empty {}
52 impl State for Empty {
53 type Reply = Unset;
54 type Post = Unset;
55 }
56 ///State transition - sets the `reply` field to Set
57 pub struct SetReply<S: State = Empty>(PhantomData<fn() -> S>);
58 impl<S: State> sealed::Sealed for SetReply<S> {}
59 impl<S: State> State for SetReply<S> {
60 type Reply = Set<members::reply>;
61 type Post = S::Post;
62 }
63 ///State transition - sets the `post` field to Set
64 pub struct SetPost<S: State = Empty>(PhantomData<fn() -> S>);
65 impl<S: State> sealed::Sealed for SetPost<S> {}
66 impl<S: State> State for SetPost<S> {
67 type Reply = S::Reply;
68 type Post = Set<members::post>;
69 }
70 /// Marker types for field names
71 #[allow(non_camel_case_types)]
72 pub mod members {
73 ///Marker type for the `reply` field
74 pub struct reply(());
75 ///Marker type for the `post` field
76 pub struct post(());
77 }
78}
79
80/// Builder for constructing an instance of this type
81pub struct ActivitySubscriptionBuilder<'a, S: activity_subscription_state::State> {
82 _phantom_state: ::core::marker::PhantomData<fn() -> S>,
83 __unsafe_private_named: (::core::option::Option<bool>, ::core::option::Option<bool>),
84 _phantom: ::core::marker::PhantomData<&'a ()>,
85}
86
87impl<'a> ActivitySubscription<'a> {
88 /// Create a new builder for this type
89 pub fn new() -> ActivitySubscriptionBuilder<'a, activity_subscription_state::Empty> {
90 ActivitySubscriptionBuilder::new()
91 }
92}
93
94impl<'a> ActivitySubscriptionBuilder<'a, activity_subscription_state::Empty> {
95 /// Create a new builder with all fields unset
96 pub fn new() -> Self {
97 ActivitySubscriptionBuilder {
98 _phantom_state: ::core::marker::PhantomData,
99 __unsafe_private_named: (None, None),
100 _phantom: ::core::marker::PhantomData,
101 }
102 }
103}
104
105impl<'a, S> ActivitySubscriptionBuilder<'a, S>
106where
107 S: activity_subscription_state::State,
108 S::Post: activity_subscription_state::IsUnset,
109{
110 /// Set the `post` field (required)
111 pub fn post(
112 mut self,
113 value: impl Into<bool>,
114 ) -> ActivitySubscriptionBuilder<'a, activity_subscription_state::SetPost<S>> {
115 self.__unsafe_private_named.0 = ::core::option::Option::Some(value.into());
116 ActivitySubscriptionBuilder {
117 _phantom_state: ::core::marker::PhantomData,
118 __unsafe_private_named: self.__unsafe_private_named,
119 _phantom: ::core::marker::PhantomData,
120 }
121 }
122}
123
124impl<'a, S> ActivitySubscriptionBuilder<'a, S>
125where
126 S: activity_subscription_state::State,
127 S::Reply: activity_subscription_state::IsUnset,
128{
129 /// Set the `reply` field (required)
130 pub fn reply(
131 mut self,
132 value: impl Into<bool>,
133 ) -> ActivitySubscriptionBuilder<'a, activity_subscription_state::SetReply<S>> {
134 self.__unsafe_private_named.1 = ::core::option::Option::Some(value.into());
135 ActivitySubscriptionBuilder {
136 _phantom_state: ::core::marker::PhantomData,
137 __unsafe_private_named: self.__unsafe_private_named,
138 _phantom: ::core::marker::PhantomData,
139 }
140 }
141}
142
143impl<'a, S> ActivitySubscriptionBuilder<'a, S>
144where
145 S: activity_subscription_state::State,
146 S::Reply: activity_subscription_state::IsSet,
147 S::Post: activity_subscription_state::IsSet,
148{
149 /// Build the final struct
150 pub fn build(self) -> ActivitySubscription<'a> {
151 ActivitySubscription {
152 post: self.__unsafe_private_named.0.unwrap(),
153 reply: self.__unsafe_private_named.1.unwrap(),
154 extra_data: Default::default(),
155 }
156 }
157 /// Build the final struct with custom extra_data
158 pub fn build_with_data(
159 self,
160 extra_data: std::collections::BTreeMap<
161 jacquard_common::smol_str::SmolStr,
162 jacquard_common::types::value::Data<'a>,
163 >,
164 ) -> ActivitySubscription<'a> {
165 ActivitySubscription {
166 post: self.__unsafe_private_named.0.unwrap(),
167 reply: self.__unsafe_private_named.1.unwrap(),
168 extra_data: Some(extra_data),
169 }
170 }
171}
172
173fn lexicon_doc_app_bsky_notification_defs() -> ::jacquard_lexicon::lexicon::LexiconDoc<
174 'static,
175> {
176 ::jacquard_lexicon::lexicon::LexiconDoc {
177 lexicon: ::jacquard_lexicon::lexicon::Lexicon::Lexicon1,
178 id: ::jacquard_common::CowStr::new_static("app.bsky.notification.defs"),
179 revision: None,
180 description: None,
181 defs: {
182 let mut map = ::alloc::collections::BTreeMap::new();
183 map.insert(
184 ::jacquard_common::smol_str::SmolStr::new_static("activitySubscription"),
185 ::jacquard_lexicon::lexicon::LexUserType::Object(::jacquard_lexicon::lexicon::LexObject {
186 description: None,
187 required: Some(
188 vec![
189 ::jacquard_common::smol_str::SmolStr::new_static("post"),
190 ::jacquard_common::smol_str::SmolStr::new_static("reply")
191 ],
192 ),
193 nullable: None,
194 properties: {
195 #[allow(unused_mut)]
196 let mut map = ::alloc::collections::BTreeMap::new();
197 map.insert(
198 ::jacquard_common::smol_str::SmolStr::new_static("post"),
199 ::jacquard_lexicon::lexicon::LexObjectProperty::Boolean(::jacquard_lexicon::lexicon::LexBoolean {
200 description: None,
201 default: None,
202 r#const: None,
203 }),
204 );
205 map.insert(
206 ::jacquard_common::smol_str::SmolStr::new_static("reply"),
207 ::jacquard_lexicon::lexicon::LexObjectProperty::Boolean(::jacquard_lexicon::lexicon::LexBoolean {
208 description: None,
209 default: None,
210 r#const: None,
211 }),
212 );
213 map
214 },
215 }),
216 );
217 map.insert(
218 ::jacquard_common::smol_str::SmolStr::new_static("chatPreference"),
219 ::jacquard_lexicon::lexicon::LexUserType::Object(::jacquard_lexicon::lexicon::LexObject {
220 description: None,
221 required: Some(
222 vec![
223 ::jacquard_common::smol_str::SmolStr::new_static("include"),
224 ::jacquard_common::smol_str::SmolStr::new_static("push")
225 ],
226 ),
227 nullable: None,
228 properties: {
229 #[allow(unused_mut)]
230 let mut map = ::alloc::collections::BTreeMap::new();
231 map.insert(
232 ::jacquard_common::smol_str::SmolStr::new_static("include"),
233 ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
234 description: None,
235 format: None,
236 default: None,
237 min_length: None,
238 max_length: None,
239 min_graphemes: None,
240 max_graphemes: None,
241 r#enum: None,
242 r#const: None,
243 known_values: None,
244 }),
245 );
246 map.insert(
247 ::jacquard_common::smol_str::SmolStr::new_static("push"),
248 ::jacquard_lexicon::lexicon::LexObjectProperty::Boolean(::jacquard_lexicon::lexicon::LexBoolean {
249 description: None,
250 default: None,
251 r#const: None,
252 }),
253 );
254 map
255 },
256 }),
257 );
258 map.insert(
259 ::jacquard_common::smol_str::SmolStr::new_static("filterablePreference"),
260 ::jacquard_lexicon::lexicon::LexUserType::Object(::jacquard_lexicon::lexicon::LexObject {
261 description: None,
262 required: Some(
263 vec![
264 ::jacquard_common::smol_str::SmolStr::new_static("include"),
265 ::jacquard_common::smol_str::SmolStr::new_static("list"),
266 ::jacquard_common::smol_str::SmolStr::new_static("push")
267 ],
268 ),
269 nullable: None,
270 properties: {
271 #[allow(unused_mut)]
272 let mut map = ::alloc::collections::BTreeMap::new();
273 map.insert(
274 ::jacquard_common::smol_str::SmolStr::new_static("include"),
275 ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
276 description: None,
277 format: None,
278 default: None,
279 min_length: None,
280 max_length: None,
281 min_graphemes: None,
282 max_graphemes: None,
283 r#enum: None,
284 r#const: None,
285 known_values: None,
286 }),
287 );
288 map.insert(
289 ::jacquard_common::smol_str::SmolStr::new_static("list"),
290 ::jacquard_lexicon::lexicon::LexObjectProperty::Boolean(::jacquard_lexicon::lexicon::LexBoolean {
291 description: None,
292 default: None,
293 r#const: None,
294 }),
295 );
296 map.insert(
297 ::jacquard_common::smol_str::SmolStr::new_static("push"),
298 ::jacquard_lexicon::lexicon::LexObjectProperty::Boolean(::jacquard_lexicon::lexicon::LexBoolean {
299 description: None,
300 default: None,
301 r#const: None,
302 }),
303 );
304 map
305 },
306 }),
307 );
308 map.insert(
309 ::jacquard_common::smol_str::SmolStr::new_static("preference"),
310 ::jacquard_lexicon::lexicon::LexUserType::Object(::jacquard_lexicon::lexicon::LexObject {
311 description: None,
312 required: Some(
313 vec![
314 ::jacquard_common::smol_str::SmolStr::new_static("list"),
315 ::jacquard_common::smol_str::SmolStr::new_static("push")
316 ],
317 ),
318 nullable: None,
319 properties: {
320 #[allow(unused_mut)]
321 let mut map = ::alloc::collections::BTreeMap::new();
322 map.insert(
323 ::jacquard_common::smol_str::SmolStr::new_static("list"),
324 ::jacquard_lexicon::lexicon::LexObjectProperty::Boolean(::jacquard_lexicon::lexicon::LexBoolean {
325 description: None,
326 default: None,
327 r#const: None,
328 }),
329 );
330 map.insert(
331 ::jacquard_common::smol_str::SmolStr::new_static("push"),
332 ::jacquard_lexicon::lexicon::LexObjectProperty::Boolean(::jacquard_lexicon::lexicon::LexBoolean {
333 description: None,
334 default: None,
335 r#const: None,
336 }),
337 );
338 map
339 },
340 }),
341 );
342 map.insert(
343 ::jacquard_common::smol_str::SmolStr::new_static("preferences"),
344 ::jacquard_lexicon::lexicon::LexUserType::Object(::jacquard_lexicon::lexicon::LexObject {
345 description: None,
346 required: Some(
347 vec![
348 ::jacquard_common::smol_str::SmolStr::new_static("chat"),
349 ::jacquard_common::smol_str::SmolStr::new_static("follow"),
350 ::jacquard_common::smol_str::SmolStr::new_static("like"),
351 ::jacquard_common::smol_str::SmolStr::new_static("likeViaRepost"),
352 ::jacquard_common::smol_str::SmolStr::new_static("mention"),
353 ::jacquard_common::smol_str::SmolStr::new_static("quote"),
354 ::jacquard_common::smol_str::SmolStr::new_static("reply"),
355 ::jacquard_common::smol_str::SmolStr::new_static("repost"),
356 ::jacquard_common::smol_str::SmolStr::new_static("repostViaRepost"),
357 ::jacquard_common::smol_str::SmolStr::new_static("starterpackJoined"),
358 ::jacquard_common::smol_str::SmolStr::new_static("subscribedPost"),
359 ::jacquard_common::smol_str::SmolStr::new_static("unverified"),
360 ::jacquard_common::smol_str::SmolStr::new_static("verified")
361 ],
362 ),
363 nullable: None,
364 properties: {
365 #[allow(unused_mut)]
366 let mut map = ::alloc::collections::BTreeMap::new();
367 map.insert(
368 ::jacquard_common::smol_str::SmolStr::new_static("chat"),
369 ::jacquard_lexicon::lexicon::LexObjectProperty::Ref(::jacquard_lexicon::lexicon::LexRef {
370 description: None,
371 r#ref: ::jacquard_common::CowStr::new_static(
372 "#chatPreference",
373 ),
374 }),
375 );
376 map.insert(
377 ::jacquard_common::smol_str::SmolStr::new_static("follow"),
378 ::jacquard_lexicon::lexicon::LexObjectProperty::Ref(::jacquard_lexicon::lexicon::LexRef {
379 description: None,
380 r#ref: ::jacquard_common::CowStr::new_static(
381 "#filterablePreference",
382 ),
383 }),
384 );
385 map.insert(
386 ::jacquard_common::smol_str::SmolStr::new_static("like"),
387 ::jacquard_lexicon::lexicon::LexObjectProperty::Ref(::jacquard_lexicon::lexicon::LexRef {
388 description: None,
389 r#ref: ::jacquard_common::CowStr::new_static(
390 "#filterablePreference",
391 ),
392 }),
393 );
394 map.insert(
395 ::jacquard_common::smol_str::SmolStr::new_static(
396 "likeViaRepost",
397 ),
398 ::jacquard_lexicon::lexicon::LexObjectProperty::Ref(::jacquard_lexicon::lexicon::LexRef {
399 description: None,
400 r#ref: ::jacquard_common::CowStr::new_static(
401 "#filterablePreference",
402 ),
403 }),
404 );
405 map.insert(
406 ::jacquard_common::smol_str::SmolStr::new_static("mention"),
407 ::jacquard_lexicon::lexicon::LexObjectProperty::Ref(::jacquard_lexicon::lexicon::LexRef {
408 description: None,
409 r#ref: ::jacquard_common::CowStr::new_static(
410 "#filterablePreference",
411 ),
412 }),
413 );
414 map.insert(
415 ::jacquard_common::smol_str::SmolStr::new_static("quote"),
416 ::jacquard_lexicon::lexicon::LexObjectProperty::Ref(::jacquard_lexicon::lexicon::LexRef {
417 description: None,
418 r#ref: ::jacquard_common::CowStr::new_static(
419 "#filterablePreference",
420 ),
421 }),
422 );
423 map.insert(
424 ::jacquard_common::smol_str::SmolStr::new_static("reply"),
425 ::jacquard_lexicon::lexicon::LexObjectProperty::Ref(::jacquard_lexicon::lexicon::LexRef {
426 description: None,
427 r#ref: ::jacquard_common::CowStr::new_static(
428 "#filterablePreference",
429 ),
430 }),
431 );
432 map.insert(
433 ::jacquard_common::smol_str::SmolStr::new_static("repost"),
434 ::jacquard_lexicon::lexicon::LexObjectProperty::Ref(::jacquard_lexicon::lexicon::LexRef {
435 description: None,
436 r#ref: ::jacquard_common::CowStr::new_static(
437 "#filterablePreference",
438 ),
439 }),
440 );
441 map.insert(
442 ::jacquard_common::smol_str::SmolStr::new_static(
443 "repostViaRepost",
444 ),
445 ::jacquard_lexicon::lexicon::LexObjectProperty::Ref(::jacquard_lexicon::lexicon::LexRef {
446 description: None,
447 r#ref: ::jacquard_common::CowStr::new_static(
448 "#filterablePreference",
449 ),
450 }),
451 );
452 map.insert(
453 ::jacquard_common::smol_str::SmolStr::new_static(
454 "starterpackJoined",
455 ),
456 ::jacquard_lexicon::lexicon::LexObjectProperty::Ref(::jacquard_lexicon::lexicon::LexRef {
457 description: None,
458 r#ref: ::jacquard_common::CowStr::new_static("#preference"),
459 }),
460 );
461 map.insert(
462 ::jacquard_common::smol_str::SmolStr::new_static(
463 "subscribedPost",
464 ),
465 ::jacquard_lexicon::lexicon::LexObjectProperty::Ref(::jacquard_lexicon::lexicon::LexRef {
466 description: None,
467 r#ref: ::jacquard_common::CowStr::new_static("#preference"),
468 }),
469 );
470 map.insert(
471 ::jacquard_common::smol_str::SmolStr::new_static(
472 "unverified",
473 ),
474 ::jacquard_lexicon::lexicon::LexObjectProperty::Ref(::jacquard_lexicon::lexicon::LexRef {
475 description: None,
476 r#ref: ::jacquard_common::CowStr::new_static("#preference"),
477 }),
478 );
479 map.insert(
480 ::jacquard_common::smol_str::SmolStr::new_static("verified"),
481 ::jacquard_lexicon::lexicon::LexObjectProperty::Ref(::jacquard_lexicon::lexicon::LexRef {
482 description: None,
483 r#ref: ::jacquard_common::CowStr::new_static("#preference"),
484 }),
485 );
486 map
487 },
488 }),
489 );
490 map.insert(
491 ::jacquard_common::smol_str::SmolStr::new_static("recordDeleted"),
492 ::jacquard_lexicon::lexicon::LexUserType::Object(::jacquard_lexicon::lexicon::LexObject {
493 description: None,
494 required: None,
495 nullable: None,
496 properties: {
497 #[allow(unused_mut)]
498 let mut map = ::alloc::collections::BTreeMap::new();
499 map
500 },
501 }),
502 );
503 map.insert(
504 ::jacquard_common::smol_str::SmolStr::new_static(
505 "subjectActivitySubscription",
506 ),
507 ::jacquard_lexicon::lexicon::LexUserType::Object(::jacquard_lexicon::lexicon::LexObject {
508 description: Some(
509 ::jacquard_common::CowStr::new_static(
510 "Object used to store activity subscription data in stash.",
511 ),
512 ),
513 required: Some(
514 vec![
515 ::jacquard_common::smol_str::SmolStr::new_static("subject"),
516 ::jacquard_common::smol_str::SmolStr::new_static("activitySubscription")
517 ],
518 ),
519 nullable: None,
520 properties: {
521 #[allow(unused_mut)]
522 let mut map = ::alloc::collections::BTreeMap::new();
523 map.insert(
524 ::jacquard_common::smol_str::SmolStr::new_static(
525 "activitySubscription",
526 ),
527 ::jacquard_lexicon::lexicon::LexObjectProperty::Ref(::jacquard_lexicon::lexicon::LexRef {
528 description: None,
529 r#ref: ::jacquard_common::CowStr::new_static(
530 "#activitySubscription",
531 ),
532 }),
533 );
534 map.insert(
535 ::jacquard_common::smol_str::SmolStr::new_static("subject"),
536 ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
537 description: None,
538 format: Some(
539 ::jacquard_lexicon::lexicon::LexStringFormat::Did,
540 ),
541 default: None,
542 min_length: None,
543 max_length: None,
544 min_graphemes: None,
545 max_graphemes: None,
546 r#enum: None,
547 r#const: None,
548 known_values: None,
549 }),
550 );
551 map
552 },
553 }),
554 );
555 map
556 },
557 }
558}
559
560impl<'a> ::jacquard_lexicon::schema::LexiconSchema for ActivitySubscription<'a> {
561 fn nsid() -> &'static str {
562 "app.bsky.notification.defs"
563 }
564 fn def_name() -> &'static str {
565 "activitySubscription"
566 }
567 fn lexicon_doc() -> ::jacquard_lexicon::lexicon::LexiconDoc<'static> {
568 lexicon_doc_app_bsky_notification_defs()
569 }
570 fn validate(
571 &self,
572 ) -> ::core::result::Result<(), ::jacquard_lexicon::validation::ConstraintError> {
573 Ok(())
574 }
575}
576
577#[jacquard_derive::lexicon]
578#[derive(
579 serde::Serialize,
580 serde::Deserialize,
581 Debug,
582 Clone,
583 PartialEq,
584 Eq,
585 jacquard_derive::IntoStatic
586)]
587#[serde(rename_all = "camelCase")]
588pub struct ChatPreference<'a> {
589 #[serde(borrow)]
590 pub include: ChatPreferenceInclude<'a>,
591 pub push: bool,
592}
593
594pub mod chat_preference_state {
595
596 pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
597 #[allow(unused)]
598 use ::core::marker::PhantomData;
599 mod sealed {
600 pub trait Sealed {}
601 }
602 /// State trait tracking which required fields have been set
603 pub trait State: sealed::Sealed {
604 type Include;
605 type Push;
606 }
607 /// Empty state - all required fields are unset
608 pub struct Empty(());
609 impl sealed::Sealed for Empty {}
610 impl State for Empty {
611 type Include = Unset;
612 type Push = Unset;
613 }
614 ///State transition - sets the `include` field to Set
615 pub struct SetInclude<S: State = Empty>(PhantomData<fn() -> S>);
616 impl<S: State> sealed::Sealed for SetInclude<S> {}
617 impl<S: State> State for SetInclude<S> {
618 type Include = Set<members::include>;
619 type Push = S::Push;
620 }
621 ///State transition - sets the `push` field to Set
622 pub struct SetPush<S: State = Empty>(PhantomData<fn() -> S>);
623 impl<S: State> sealed::Sealed for SetPush<S> {}
624 impl<S: State> State for SetPush<S> {
625 type Include = S::Include;
626 type Push = Set<members::push>;
627 }
628 /// Marker types for field names
629 #[allow(non_camel_case_types)]
630 pub mod members {
631 ///Marker type for the `include` field
632 pub struct include(());
633 ///Marker type for the `push` field
634 pub struct push(());
635 }
636}
637
638/// Builder for constructing an instance of this type
639pub struct ChatPreferenceBuilder<'a, S: chat_preference_state::State> {
640 _phantom_state: ::core::marker::PhantomData<fn() -> S>,
641 __unsafe_private_named: (
642 ::core::option::Option<ChatPreferenceInclude<'a>>,
643 ::core::option::Option<bool>,
644 ),
645 _phantom: ::core::marker::PhantomData<&'a ()>,
646}
647
648impl<'a> ChatPreference<'a> {
649 /// Create a new builder for this type
650 pub fn new() -> ChatPreferenceBuilder<'a, chat_preference_state::Empty> {
651 ChatPreferenceBuilder::new()
652 }
653}
654
655impl<'a> ChatPreferenceBuilder<'a, chat_preference_state::Empty> {
656 /// Create a new builder with all fields unset
657 pub fn new() -> Self {
658 ChatPreferenceBuilder {
659 _phantom_state: ::core::marker::PhantomData,
660 __unsafe_private_named: (None, None),
661 _phantom: ::core::marker::PhantomData,
662 }
663 }
664}
665
666impl<'a, S> ChatPreferenceBuilder<'a, S>
667where
668 S: chat_preference_state::State,
669 S::Include: chat_preference_state::IsUnset,
670{
671 /// Set the `include` field (required)
672 pub fn include(
673 mut self,
674 value: impl Into<ChatPreferenceInclude<'a>>,
675 ) -> ChatPreferenceBuilder<'a, chat_preference_state::SetInclude<S>> {
676 self.__unsafe_private_named.0 = ::core::option::Option::Some(value.into());
677 ChatPreferenceBuilder {
678 _phantom_state: ::core::marker::PhantomData,
679 __unsafe_private_named: self.__unsafe_private_named,
680 _phantom: ::core::marker::PhantomData,
681 }
682 }
683}
684
685impl<'a, S> ChatPreferenceBuilder<'a, S>
686where
687 S: chat_preference_state::State,
688 S::Push: chat_preference_state::IsUnset,
689{
690 /// Set the `push` field (required)
691 pub fn push(
692 mut self,
693 value: impl Into<bool>,
694 ) -> ChatPreferenceBuilder<'a, chat_preference_state::SetPush<S>> {
695 self.__unsafe_private_named.1 = ::core::option::Option::Some(value.into());
696 ChatPreferenceBuilder {
697 _phantom_state: ::core::marker::PhantomData,
698 __unsafe_private_named: self.__unsafe_private_named,
699 _phantom: ::core::marker::PhantomData,
700 }
701 }
702}
703
704impl<'a, S> ChatPreferenceBuilder<'a, S>
705where
706 S: chat_preference_state::State,
707 S::Include: chat_preference_state::IsSet,
708 S::Push: chat_preference_state::IsSet,
709{
710 /// Build the final struct
711 pub fn build(self) -> ChatPreference<'a> {
712 ChatPreference {
713 include: self.__unsafe_private_named.0.unwrap(),
714 push: self.__unsafe_private_named.1.unwrap(),
715 extra_data: Default::default(),
716 }
717 }
718 /// Build the final struct with custom extra_data
719 pub fn build_with_data(
720 self,
721 extra_data: std::collections::BTreeMap<
722 jacquard_common::smol_str::SmolStr,
723 jacquard_common::types::value::Data<'a>,
724 >,
725 ) -> ChatPreference<'a> {
726 ChatPreference {
727 include: self.__unsafe_private_named.0.unwrap(),
728 push: self.__unsafe_private_named.1.unwrap(),
729 extra_data: Some(extra_data),
730 }
731 }
732}
733
734#[derive(Debug, Clone, PartialEq, Eq, Hash)]
735pub enum ChatPreferenceInclude<'a> {
736 All,
737 Accepted,
738 Other(jacquard_common::CowStr<'a>),
739}
740
741impl<'a> ChatPreferenceInclude<'a> {
742 pub fn as_str(&self) -> &str {
743 match self {
744 Self::All => "all",
745 Self::Accepted => "accepted",
746 Self::Other(s) => s.as_ref(),
747 }
748 }
749}
750
751impl<'a> From<&'a str> for ChatPreferenceInclude<'a> {
752 fn from(s: &'a str) -> Self {
753 match s {
754 "all" => Self::All,
755 "accepted" => Self::Accepted,
756 _ => Self::Other(jacquard_common::CowStr::from(s)),
757 }
758 }
759}
760
761impl<'a> From<String> for ChatPreferenceInclude<'a> {
762 fn from(s: String) -> Self {
763 match s.as_str() {
764 "all" => Self::All,
765 "accepted" => Self::Accepted,
766 _ => Self::Other(jacquard_common::CowStr::from(s)),
767 }
768 }
769}
770
771impl<'a> core::fmt::Display for ChatPreferenceInclude<'a> {
772 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
773 write!(f, "{}", self.as_str())
774 }
775}
776
777impl<'a> AsRef<str> for ChatPreferenceInclude<'a> {
778 fn as_ref(&self) -> &str {
779 self.as_str()
780 }
781}
782
783impl<'a> serde::Serialize for ChatPreferenceInclude<'a> {
784 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
785 where
786 S: serde::Serializer,
787 {
788 serializer.serialize_str(self.as_str())
789 }
790}
791
792impl<'de, 'a> serde::Deserialize<'de> for ChatPreferenceInclude<'a>
793where
794 'de: 'a,
795{
796 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
797 where
798 D: serde::Deserializer<'de>,
799 {
800 let s = <&'de str>::deserialize(deserializer)?;
801 Ok(Self::from(s))
802 }
803}
804
805impl<'a> Default for ChatPreferenceInclude<'a> {
806 fn default() -> Self {
807 Self::Other(Default::default())
808 }
809}
810
811impl jacquard_common::IntoStatic for ChatPreferenceInclude<'_> {
812 type Output = ChatPreferenceInclude<'static>;
813 fn into_static(self) -> Self::Output {
814 match self {
815 ChatPreferenceInclude::All => ChatPreferenceInclude::All,
816 ChatPreferenceInclude::Accepted => ChatPreferenceInclude::Accepted,
817 ChatPreferenceInclude::Other(v) => {
818 ChatPreferenceInclude::Other(v.into_static())
819 }
820 }
821 }
822}
823
824impl<'a> ::jacquard_lexicon::schema::LexiconSchema for ChatPreference<'a> {
825 fn nsid() -> &'static str {
826 "app.bsky.notification.defs"
827 }
828 fn def_name() -> &'static str {
829 "chatPreference"
830 }
831 fn lexicon_doc() -> ::jacquard_lexicon::lexicon::LexiconDoc<'static> {
832 lexicon_doc_app_bsky_notification_defs()
833 }
834 fn validate(
835 &self,
836 ) -> ::core::result::Result<(), ::jacquard_lexicon::validation::ConstraintError> {
837 Ok(())
838 }
839}
840
841#[jacquard_derive::lexicon]
842#[derive(
843 serde::Serialize,
844 serde::Deserialize,
845 Debug,
846 Clone,
847 PartialEq,
848 Eq,
849 jacquard_derive::IntoStatic
850)]
851#[serde(rename_all = "camelCase")]
852pub struct FilterablePreference<'a> {
853 #[serde(borrow)]
854 pub include: FilterablePreferenceInclude<'a>,
855 pub list: bool,
856 pub push: bool,
857}
858
859pub mod filterable_preference_state {
860
861 pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
862 #[allow(unused)]
863 use ::core::marker::PhantomData;
864 mod sealed {
865 pub trait Sealed {}
866 }
867 /// State trait tracking which required fields have been set
868 pub trait State: sealed::Sealed {
869 type List;
870 type Include;
871 type Push;
872 }
873 /// Empty state - all required fields are unset
874 pub struct Empty(());
875 impl sealed::Sealed for Empty {}
876 impl State for Empty {
877 type List = Unset;
878 type Include = Unset;
879 type Push = Unset;
880 }
881 ///State transition - sets the `list` field to Set
882 pub struct SetList<S: State = Empty>(PhantomData<fn() -> S>);
883 impl<S: State> sealed::Sealed for SetList<S> {}
884 impl<S: State> State for SetList<S> {
885 type List = Set<members::list>;
886 type Include = S::Include;
887 type Push = S::Push;
888 }
889 ///State transition - sets the `include` field to Set
890 pub struct SetInclude<S: State = Empty>(PhantomData<fn() -> S>);
891 impl<S: State> sealed::Sealed for SetInclude<S> {}
892 impl<S: State> State for SetInclude<S> {
893 type List = S::List;
894 type Include = Set<members::include>;
895 type Push = S::Push;
896 }
897 ///State transition - sets the `push` field to Set
898 pub struct SetPush<S: State = Empty>(PhantomData<fn() -> S>);
899 impl<S: State> sealed::Sealed for SetPush<S> {}
900 impl<S: State> State for SetPush<S> {
901 type List = S::List;
902 type Include = S::Include;
903 type Push = Set<members::push>;
904 }
905 /// Marker types for field names
906 #[allow(non_camel_case_types)]
907 pub mod members {
908 ///Marker type for the `list` field
909 pub struct list(());
910 ///Marker type for the `include` field
911 pub struct include(());
912 ///Marker type for the `push` field
913 pub struct push(());
914 }
915}
916
917/// Builder for constructing an instance of this type
918pub struct FilterablePreferenceBuilder<'a, S: filterable_preference_state::State> {
919 _phantom_state: ::core::marker::PhantomData<fn() -> S>,
920 __unsafe_private_named: (
921 ::core::option::Option<FilterablePreferenceInclude<'a>>,
922 ::core::option::Option<bool>,
923 ::core::option::Option<bool>,
924 ),
925 _phantom: ::core::marker::PhantomData<&'a ()>,
926}
927
928impl<'a> FilterablePreference<'a> {
929 /// Create a new builder for this type
930 pub fn new() -> FilterablePreferenceBuilder<'a, filterable_preference_state::Empty> {
931 FilterablePreferenceBuilder::new()
932 }
933}
934
935impl<'a> FilterablePreferenceBuilder<'a, filterable_preference_state::Empty> {
936 /// Create a new builder with all fields unset
937 pub fn new() -> Self {
938 FilterablePreferenceBuilder {
939 _phantom_state: ::core::marker::PhantomData,
940 __unsafe_private_named: (None, None, None),
941 _phantom: ::core::marker::PhantomData,
942 }
943 }
944}
945
946impl<'a, S> FilterablePreferenceBuilder<'a, S>
947where
948 S: filterable_preference_state::State,
949 S::Include: filterable_preference_state::IsUnset,
950{
951 /// Set the `include` field (required)
952 pub fn include(
953 mut self,
954 value: impl Into<FilterablePreferenceInclude<'a>>,
955 ) -> FilterablePreferenceBuilder<'a, filterable_preference_state::SetInclude<S>> {
956 self.__unsafe_private_named.0 = ::core::option::Option::Some(value.into());
957 FilterablePreferenceBuilder {
958 _phantom_state: ::core::marker::PhantomData,
959 __unsafe_private_named: self.__unsafe_private_named,
960 _phantom: ::core::marker::PhantomData,
961 }
962 }
963}
964
965impl<'a, S> FilterablePreferenceBuilder<'a, S>
966where
967 S: filterable_preference_state::State,
968 S::List: filterable_preference_state::IsUnset,
969{
970 /// Set the `list` field (required)
971 pub fn list(
972 mut self,
973 value: impl Into<bool>,
974 ) -> FilterablePreferenceBuilder<'a, filterable_preference_state::SetList<S>> {
975 self.__unsafe_private_named.1 = ::core::option::Option::Some(value.into());
976 FilterablePreferenceBuilder {
977 _phantom_state: ::core::marker::PhantomData,
978 __unsafe_private_named: self.__unsafe_private_named,
979 _phantom: ::core::marker::PhantomData,
980 }
981 }
982}
983
984impl<'a, S> FilterablePreferenceBuilder<'a, S>
985where
986 S: filterable_preference_state::State,
987 S::Push: filterable_preference_state::IsUnset,
988{
989 /// Set the `push` field (required)
990 pub fn push(
991 mut self,
992 value: impl Into<bool>,
993 ) -> FilterablePreferenceBuilder<'a, filterable_preference_state::SetPush<S>> {
994 self.__unsafe_private_named.2 = ::core::option::Option::Some(value.into());
995 FilterablePreferenceBuilder {
996 _phantom_state: ::core::marker::PhantomData,
997 __unsafe_private_named: self.__unsafe_private_named,
998 _phantom: ::core::marker::PhantomData,
999 }
1000 }
1001}
1002
1003impl<'a, S> FilterablePreferenceBuilder<'a, S>
1004where
1005 S: filterable_preference_state::State,
1006 S::List: filterable_preference_state::IsSet,
1007 S::Include: filterable_preference_state::IsSet,
1008 S::Push: filterable_preference_state::IsSet,
1009{
1010 /// Build the final struct
1011 pub fn build(self) -> FilterablePreference<'a> {
1012 FilterablePreference {
1013 include: self.__unsafe_private_named.0.unwrap(),
1014 list: self.__unsafe_private_named.1.unwrap(),
1015 push: self.__unsafe_private_named.2.unwrap(),
1016 extra_data: Default::default(),
1017 }
1018 }
1019 /// Build the final struct with custom extra_data
1020 pub fn build_with_data(
1021 self,
1022 extra_data: std::collections::BTreeMap<
1023 jacquard_common::smol_str::SmolStr,
1024 jacquard_common::types::value::Data<'a>,
1025 >,
1026 ) -> FilterablePreference<'a> {
1027 FilterablePreference {
1028 include: self.__unsafe_private_named.0.unwrap(),
1029 list: self.__unsafe_private_named.1.unwrap(),
1030 push: self.__unsafe_private_named.2.unwrap(),
1031 extra_data: Some(extra_data),
1032 }
1033 }
1034}
1035
1036#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1037pub enum FilterablePreferenceInclude<'a> {
1038 All,
1039 Follows,
1040 Other(jacquard_common::CowStr<'a>),
1041}
1042
1043impl<'a> FilterablePreferenceInclude<'a> {
1044 pub fn as_str(&self) -> &str {
1045 match self {
1046 Self::All => "all",
1047 Self::Follows => "follows",
1048 Self::Other(s) => s.as_ref(),
1049 }
1050 }
1051}
1052
1053impl<'a> From<&'a str> for FilterablePreferenceInclude<'a> {
1054 fn from(s: &'a str) -> Self {
1055 match s {
1056 "all" => Self::All,
1057 "follows" => Self::Follows,
1058 _ => Self::Other(jacquard_common::CowStr::from(s)),
1059 }
1060 }
1061}
1062
1063impl<'a> From<String> for FilterablePreferenceInclude<'a> {
1064 fn from(s: String) -> Self {
1065 match s.as_str() {
1066 "all" => Self::All,
1067 "follows" => Self::Follows,
1068 _ => Self::Other(jacquard_common::CowStr::from(s)),
1069 }
1070 }
1071}
1072
1073impl<'a> core::fmt::Display for FilterablePreferenceInclude<'a> {
1074 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
1075 write!(f, "{}", self.as_str())
1076 }
1077}
1078
1079impl<'a> AsRef<str> for FilterablePreferenceInclude<'a> {
1080 fn as_ref(&self) -> &str {
1081 self.as_str()
1082 }
1083}
1084
1085impl<'a> serde::Serialize for FilterablePreferenceInclude<'a> {
1086 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1087 where
1088 S: serde::Serializer,
1089 {
1090 serializer.serialize_str(self.as_str())
1091 }
1092}
1093
1094impl<'de, 'a> serde::Deserialize<'de> for FilterablePreferenceInclude<'a>
1095where
1096 'de: 'a,
1097{
1098 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1099 where
1100 D: serde::Deserializer<'de>,
1101 {
1102 let s = <&'de str>::deserialize(deserializer)?;
1103 Ok(Self::from(s))
1104 }
1105}
1106
1107impl<'a> Default for FilterablePreferenceInclude<'a> {
1108 fn default() -> Self {
1109 Self::Other(Default::default())
1110 }
1111}
1112
1113impl jacquard_common::IntoStatic for FilterablePreferenceInclude<'_> {
1114 type Output = FilterablePreferenceInclude<'static>;
1115 fn into_static(self) -> Self::Output {
1116 match self {
1117 FilterablePreferenceInclude::All => FilterablePreferenceInclude::All,
1118 FilterablePreferenceInclude::Follows => FilterablePreferenceInclude::Follows,
1119 FilterablePreferenceInclude::Other(v) => {
1120 FilterablePreferenceInclude::Other(v.into_static())
1121 }
1122 }
1123 }
1124}
1125
1126impl<'a> ::jacquard_lexicon::schema::LexiconSchema for FilterablePreference<'a> {
1127 fn nsid() -> &'static str {
1128 "app.bsky.notification.defs"
1129 }
1130 fn def_name() -> &'static str {
1131 "filterablePreference"
1132 }
1133 fn lexicon_doc() -> ::jacquard_lexicon::lexicon::LexiconDoc<'static> {
1134 lexicon_doc_app_bsky_notification_defs()
1135 }
1136 fn validate(
1137 &self,
1138 ) -> ::core::result::Result<(), ::jacquard_lexicon::validation::ConstraintError> {
1139 Ok(())
1140 }
1141}
1142
1143#[jacquard_derive::lexicon]
1144#[derive(
1145 serde::Serialize,
1146 serde::Deserialize,
1147 Debug,
1148 Clone,
1149 PartialEq,
1150 Eq,
1151 jacquard_derive::IntoStatic
1152)]
1153#[serde(rename_all = "camelCase")]
1154pub struct Preference<'a> {
1155 pub list: bool,
1156 pub push: bool,
1157}
1158
1159pub mod preference_state {
1160
1161 pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
1162 #[allow(unused)]
1163 use ::core::marker::PhantomData;
1164 mod sealed {
1165 pub trait Sealed {}
1166 }
1167 /// State trait tracking which required fields have been set
1168 pub trait State: sealed::Sealed {
1169 type Push;
1170 type List;
1171 }
1172 /// Empty state - all required fields are unset
1173 pub struct Empty(());
1174 impl sealed::Sealed for Empty {}
1175 impl State for Empty {
1176 type Push = Unset;
1177 type List = Unset;
1178 }
1179 ///State transition - sets the `push` field to Set
1180 pub struct SetPush<S: State = Empty>(PhantomData<fn() -> S>);
1181 impl<S: State> sealed::Sealed for SetPush<S> {}
1182 impl<S: State> State for SetPush<S> {
1183 type Push = Set<members::push>;
1184 type List = S::List;
1185 }
1186 ///State transition - sets the `list` field to Set
1187 pub struct SetList<S: State = Empty>(PhantomData<fn() -> S>);
1188 impl<S: State> sealed::Sealed for SetList<S> {}
1189 impl<S: State> State for SetList<S> {
1190 type Push = S::Push;
1191 type List = Set<members::list>;
1192 }
1193 /// Marker types for field names
1194 #[allow(non_camel_case_types)]
1195 pub mod members {
1196 ///Marker type for the `push` field
1197 pub struct push(());
1198 ///Marker type for the `list` field
1199 pub struct list(());
1200 }
1201}
1202
1203/// Builder for constructing an instance of this type
1204pub struct PreferenceBuilder<'a, S: preference_state::State> {
1205 _phantom_state: ::core::marker::PhantomData<fn() -> S>,
1206 __unsafe_private_named: (::core::option::Option<bool>, ::core::option::Option<bool>),
1207 _phantom: ::core::marker::PhantomData<&'a ()>,
1208}
1209
1210impl<'a> Preference<'a> {
1211 /// Create a new builder for this type
1212 pub fn new() -> PreferenceBuilder<'a, preference_state::Empty> {
1213 PreferenceBuilder::new()
1214 }
1215}
1216
1217impl<'a> PreferenceBuilder<'a, preference_state::Empty> {
1218 /// Create a new builder with all fields unset
1219 pub fn new() -> Self {
1220 PreferenceBuilder {
1221 _phantom_state: ::core::marker::PhantomData,
1222 __unsafe_private_named: (None, None),
1223 _phantom: ::core::marker::PhantomData,
1224 }
1225 }
1226}
1227
1228impl<'a, S> PreferenceBuilder<'a, S>
1229where
1230 S: preference_state::State,
1231 S::List: preference_state::IsUnset,
1232{
1233 /// Set the `list` field (required)
1234 pub fn list(
1235 mut self,
1236 value: impl Into<bool>,
1237 ) -> PreferenceBuilder<'a, preference_state::SetList<S>> {
1238 self.__unsafe_private_named.0 = ::core::option::Option::Some(value.into());
1239 PreferenceBuilder {
1240 _phantom_state: ::core::marker::PhantomData,
1241 __unsafe_private_named: self.__unsafe_private_named,
1242 _phantom: ::core::marker::PhantomData,
1243 }
1244 }
1245}
1246
1247impl<'a, S> PreferenceBuilder<'a, S>
1248where
1249 S: preference_state::State,
1250 S::Push: preference_state::IsUnset,
1251{
1252 /// Set the `push` field (required)
1253 pub fn push(
1254 mut self,
1255 value: impl Into<bool>,
1256 ) -> PreferenceBuilder<'a, preference_state::SetPush<S>> {
1257 self.__unsafe_private_named.1 = ::core::option::Option::Some(value.into());
1258 PreferenceBuilder {
1259 _phantom_state: ::core::marker::PhantomData,
1260 __unsafe_private_named: self.__unsafe_private_named,
1261 _phantom: ::core::marker::PhantomData,
1262 }
1263 }
1264}
1265
1266impl<'a, S> PreferenceBuilder<'a, S>
1267where
1268 S: preference_state::State,
1269 S::Push: preference_state::IsSet,
1270 S::List: preference_state::IsSet,
1271{
1272 /// Build the final struct
1273 pub fn build(self) -> Preference<'a> {
1274 Preference {
1275 list: self.__unsafe_private_named.0.unwrap(),
1276 push: self.__unsafe_private_named.1.unwrap(),
1277 extra_data: Default::default(),
1278 }
1279 }
1280 /// Build the final struct with custom extra_data
1281 pub fn build_with_data(
1282 self,
1283 extra_data: std::collections::BTreeMap<
1284 jacquard_common::smol_str::SmolStr,
1285 jacquard_common::types::value::Data<'a>,
1286 >,
1287 ) -> Preference<'a> {
1288 Preference {
1289 list: self.__unsafe_private_named.0.unwrap(),
1290 push: self.__unsafe_private_named.1.unwrap(),
1291 extra_data: Some(extra_data),
1292 }
1293 }
1294}
1295
1296impl<'a> ::jacquard_lexicon::schema::LexiconSchema for Preference<'a> {
1297 fn nsid() -> &'static str {
1298 "app.bsky.notification.defs"
1299 }
1300 fn def_name() -> &'static str {
1301 "preference"
1302 }
1303 fn lexicon_doc() -> ::jacquard_lexicon::lexicon::LexiconDoc<'static> {
1304 lexicon_doc_app_bsky_notification_defs()
1305 }
1306 fn validate(
1307 &self,
1308 ) -> ::core::result::Result<(), ::jacquard_lexicon::validation::ConstraintError> {
1309 Ok(())
1310 }
1311}
1312
1313#[jacquard_derive::lexicon]
1314#[derive(
1315 serde::Serialize,
1316 serde::Deserialize,
1317 Debug,
1318 Clone,
1319 PartialEq,
1320 Eq,
1321 jacquard_derive::IntoStatic
1322)]
1323#[serde(rename_all = "camelCase")]
1324pub struct Preferences<'a> {
1325 #[serde(borrow)]
1326 pub chat: crate::app_bsky::notification::ChatPreference<'a>,
1327 #[serde(borrow)]
1328 pub follow: crate::app_bsky::notification::FilterablePreference<'a>,
1329 #[serde(borrow)]
1330 pub like: crate::app_bsky::notification::FilterablePreference<'a>,
1331 #[serde(borrow)]
1332 pub like_via_repost: crate::app_bsky::notification::FilterablePreference<'a>,
1333 #[serde(borrow)]
1334 pub mention: crate::app_bsky::notification::FilterablePreference<'a>,
1335 #[serde(borrow)]
1336 pub quote: crate::app_bsky::notification::FilterablePreference<'a>,
1337 #[serde(borrow)]
1338 pub reply: crate::app_bsky::notification::FilterablePreference<'a>,
1339 #[serde(borrow)]
1340 pub repost: crate::app_bsky::notification::FilterablePreference<'a>,
1341 #[serde(borrow)]
1342 pub repost_via_repost: crate::app_bsky::notification::FilterablePreference<'a>,
1343 #[serde(borrow)]
1344 pub starterpack_joined: crate::app_bsky::notification::Preference<'a>,
1345 #[serde(borrow)]
1346 pub subscribed_post: crate::app_bsky::notification::Preference<'a>,
1347 #[serde(borrow)]
1348 pub unverified: crate::app_bsky::notification::Preference<'a>,
1349 #[serde(borrow)]
1350 pub verified: crate::app_bsky::notification::Preference<'a>,
1351}
1352
1353pub mod preferences_state {
1354
1355 pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
1356 #[allow(unused)]
1357 use ::core::marker::PhantomData;
1358 mod sealed {
1359 pub trait Sealed {}
1360 }
1361 /// State trait tracking which required fields have been set
1362 pub trait State: sealed::Sealed {
1363 type LikeViaRepost;
1364 type Quote;
1365 type Verified;
1366 type Chat;
1367 type Reply;
1368 type Repost;
1369 type Follow;
1370 type Like;
1371 type StarterpackJoined;
1372 type Unverified;
1373 type Mention;
1374 type RepostViaRepost;
1375 type SubscribedPost;
1376 }
1377 /// Empty state - all required fields are unset
1378 pub struct Empty(());
1379 impl sealed::Sealed for Empty {}
1380 impl State for Empty {
1381 type LikeViaRepost = Unset;
1382 type Quote = Unset;
1383 type Verified = Unset;
1384 type Chat = Unset;
1385 type Reply = Unset;
1386 type Repost = Unset;
1387 type Follow = Unset;
1388 type Like = Unset;
1389 type StarterpackJoined = Unset;
1390 type Unverified = Unset;
1391 type Mention = Unset;
1392 type RepostViaRepost = Unset;
1393 type SubscribedPost = Unset;
1394 }
1395 ///State transition - sets the `like_via_repost` field to Set
1396 pub struct SetLikeViaRepost<S: State = Empty>(PhantomData<fn() -> S>);
1397 impl<S: State> sealed::Sealed for SetLikeViaRepost<S> {}
1398 impl<S: State> State for SetLikeViaRepost<S> {
1399 type LikeViaRepost = Set<members::like_via_repost>;
1400 type Quote = S::Quote;
1401 type Verified = S::Verified;
1402 type Chat = S::Chat;
1403 type Reply = S::Reply;
1404 type Repost = S::Repost;
1405 type Follow = S::Follow;
1406 type Like = S::Like;
1407 type StarterpackJoined = S::StarterpackJoined;
1408 type Unverified = S::Unverified;
1409 type Mention = S::Mention;
1410 type RepostViaRepost = S::RepostViaRepost;
1411 type SubscribedPost = S::SubscribedPost;
1412 }
1413 ///State transition - sets the `quote` field to Set
1414 pub struct SetQuote<S: State = Empty>(PhantomData<fn() -> S>);
1415 impl<S: State> sealed::Sealed for SetQuote<S> {}
1416 impl<S: State> State for SetQuote<S> {
1417 type LikeViaRepost = S::LikeViaRepost;
1418 type Quote = Set<members::quote>;
1419 type Verified = S::Verified;
1420 type Chat = S::Chat;
1421 type Reply = S::Reply;
1422 type Repost = S::Repost;
1423 type Follow = S::Follow;
1424 type Like = S::Like;
1425 type StarterpackJoined = S::StarterpackJoined;
1426 type Unverified = S::Unverified;
1427 type Mention = S::Mention;
1428 type RepostViaRepost = S::RepostViaRepost;
1429 type SubscribedPost = S::SubscribedPost;
1430 }
1431 ///State transition - sets the `verified` field to Set
1432 pub struct SetVerified<S: State = Empty>(PhantomData<fn() -> S>);
1433 impl<S: State> sealed::Sealed for SetVerified<S> {}
1434 impl<S: State> State for SetVerified<S> {
1435 type LikeViaRepost = S::LikeViaRepost;
1436 type Quote = S::Quote;
1437 type Verified = Set<members::verified>;
1438 type Chat = S::Chat;
1439 type Reply = S::Reply;
1440 type Repost = S::Repost;
1441 type Follow = S::Follow;
1442 type Like = S::Like;
1443 type StarterpackJoined = S::StarterpackJoined;
1444 type Unverified = S::Unverified;
1445 type Mention = S::Mention;
1446 type RepostViaRepost = S::RepostViaRepost;
1447 type SubscribedPost = S::SubscribedPost;
1448 }
1449 ///State transition - sets the `chat` field to Set
1450 pub struct SetChat<S: State = Empty>(PhantomData<fn() -> S>);
1451 impl<S: State> sealed::Sealed for SetChat<S> {}
1452 impl<S: State> State for SetChat<S> {
1453 type LikeViaRepost = S::LikeViaRepost;
1454 type Quote = S::Quote;
1455 type Verified = S::Verified;
1456 type Chat = Set<members::chat>;
1457 type Reply = S::Reply;
1458 type Repost = S::Repost;
1459 type Follow = S::Follow;
1460 type Like = S::Like;
1461 type StarterpackJoined = S::StarterpackJoined;
1462 type Unverified = S::Unverified;
1463 type Mention = S::Mention;
1464 type RepostViaRepost = S::RepostViaRepost;
1465 type SubscribedPost = S::SubscribedPost;
1466 }
1467 ///State transition - sets the `reply` field to Set
1468 pub struct SetReply<S: State = Empty>(PhantomData<fn() -> S>);
1469 impl<S: State> sealed::Sealed for SetReply<S> {}
1470 impl<S: State> State for SetReply<S> {
1471 type LikeViaRepost = S::LikeViaRepost;
1472 type Quote = S::Quote;
1473 type Verified = S::Verified;
1474 type Chat = S::Chat;
1475 type Reply = Set<members::reply>;
1476 type Repost = S::Repost;
1477 type Follow = S::Follow;
1478 type Like = S::Like;
1479 type StarterpackJoined = S::StarterpackJoined;
1480 type Unverified = S::Unverified;
1481 type Mention = S::Mention;
1482 type RepostViaRepost = S::RepostViaRepost;
1483 type SubscribedPost = S::SubscribedPost;
1484 }
1485 ///State transition - sets the `repost` field to Set
1486 pub struct SetRepost<S: State = Empty>(PhantomData<fn() -> S>);
1487 impl<S: State> sealed::Sealed for SetRepost<S> {}
1488 impl<S: State> State for SetRepost<S> {
1489 type LikeViaRepost = S::LikeViaRepost;
1490 type Quote = S::Quote;
1491 type Verified = S::Verified;
1492 type Chat = S::Chat;
1493 type Reply = S::Reply;
1494 type Repost = Set<members::repost>;
1495 type Follow = S::Follow;
1496 type Like = S::Like;
1497 type StarterpackJoined = S::StarterpackJoined;
1498 type Unverified = S::Unverified;
1499 type Mention = S::Mention;
1500 type RepostViaRepost = S::RepostViaRepost;
1501 type SubscribedPost = S::SubscribedPost;
1502 }
1503 ///State transition - sets the `follow` field to Set
1504 pub struct SetFollow<S: State = Empty>(PhantomData<fn() -> S>);
1505 impl<S: State> sealed::Sealed for SetFollow<S> {}
1506 impl<S: State> State for SetFollow<S> {
1507 type LikeViaRepost = S::LikeViaRepost;
1508 type Quote = S::Quote;
1509 type Verified = S::Verified;
1510 type Chat = S::Chat;
1511 type Reply = S::Reply;
1512 type Repost = S::Repost;
1513 type Follow = Set<members::follow>;
1514 type Like = S::Like;
1515 type StarterpackJoined = S::StarterpackJoined;
1516 type Unverified = S::Unverified;
1517 type Mention = S::Mention;
1518 type RepostViaRepost = S::RepostViaRepost;
1519 type SubscribedPost = S::SubscribedPost;
1520 }
1521 ///State transition - sets the `like` field to Set
1522 pub struct SetLike<S: State = Empty>(PhantomData<fn() -> S>);
1523 impl<S: State> sealed::Sealed for SetLike<S> {}
1524 impl<S: State> State for SetLike<S> {
1525 type LikeViaRepost = S::LikeViaRepost;
1526 type Quote = S::Quote;
1527 type Verified = S::Verified;
1528 type Chat = S::Chat;
1529 type Reply = S::Reply;
1530 type Repost = S::Repost;
1531 type Follow = S::Follow;
1532 type Like = Set<members::like>;
1533 type StarterpackJoined = S::StarterpackJoined;
1534 type Unverified = S::Unverified;
1535 type Mention = S::Mention;
1536 type RepostViaRepost = S::RepostViaRepost;
1537 type SubscribedPost = S::SubscribedPost;
1538 }
1539 ///State transition - sets the `starterpack_joined` field to Set
1540 pub struct SetStarterpackJoined<S: State = Empty>(PhantomData<fn() -> S>);
1541 impl<S: State> sealed::Sealed for SetStarterpackJoined<S> {}
1542 impl<S: State> State for SetStarterpackJoined<S> {
1543 type LikeViaRepost = S::LikeViaRepost;
1544 type Quote = S::Quote;
1545 type Verified = S::Verified;
1546 type Chat = S::Chat;
1547 type Reply = S::Reply;
1548 type Repost = S::Repost;
1549 type Follow = S::Follow;
1550 type Like = S::Like;
1551 type StarterpackJoined = Set<members::starterpack_joined>;
1552 type Unverified = S::Unverified;
1553 type Mention = S::Mention;
1554 type RepostViaRepost = S::RepostViaRepost;
1555 type SubscribedPost = S::SubscribedPost;
1556 }
1557 ///State transition - sets the `unverified` field to Set
1558 pub struct SetUnverified<S: State = Empty>(PhantomData<fn() -> S>);
1559 impl<S: State> sealed::Sealed for SetUnverified<S> {}
1560 impl<S: State> State for SetUnverified<S> {
1561 type LikeViaRepost = S::LikeViaRepost;
1562 type Quote = S::Quote;
1563 type Verified = S::Verified;
1564 type Chat = S::Chat;
1565 type Reply = S::Reply;
1566 type Repost = S::Repost;
1567 type Follow = S::Follow;
1568 type Like = S::Like;
1569 type StarterpackJoined = S::StarterpackJoined;
1570 type Unverified = Set<members::unverified>;
1571 type Mention = S::Mention;
1572 type RepostViaRepost = S::RepostViaRepost;
1573 type SubscribedPost = S::SubscribedPost;
1574 }
1575 ///State transition - sets the `mention` field to Set
1576 pub struct SetMention<S: State = Empty>(PhantomData<fn() -> S>);
1577 impl<S: State> sealed::Sealed for SetMention<S> {}
1578 impl<S: State> State for SetMention<S> {
1579 type LikeViaRepost = S::LikeViaRepost;
1580 type Quote = S::Quote;
1581 type Verified = S::Verified;
1582 type Chat = S::Chat;
1583 type Reply = S::Reply;
1584 type Repost = S::Repost;
1585 type Follow = S::Follow;
1586 type Like = S::Like;
1587 type StarterpackJoined = S::StarterpackJoined;
1588 type Unverified = S::Unverified;
1589 type Mention = Set<members::mention>;
1590 type RepostViaRepost = S::RepostViaRepost;
1591 type SubscribedPost = S::SubscribedPost;
1592 }
1593 ///State transition - sets the `repost_via_repost` field to Set
1594 pub struct SetRepostViaRepost<S: State = Empty>(PhantomData<fn() -> S>);
1595 impl<S: State> sealed::Sealed for SetRepostViaRepost<S> {}
1596 impl<S: State> State for SetRepostViaRepost<S> {
1597 type LikeViaRepost = S::LikeViaRepost;
1598 type Quote = S::Quote;
1599 type Verified = S::Verified;
1600 type Chat = S::Chat;
1601 type Reply = S::Reply;
1602 type Repost = S::Repost;
1603 type Follow = S::Follow;
1604 type Like = S::Like;
1605 type StarterpackJoined = S::StarterpackJoined;
1606 type Unverified = S::Unverified;
1607 type Mention = S::Mention;
1608 type RepostViaRepost = Set<members::repost_via_repost>;
1609 type SubscribedPost = S::SubscribedPost;
1610 }
1611 ///State transition - sets the `subscribed_post` field to Set
1612 pub struct SetSubscribedPost<S: State = Empty>(PhantomData<fn() -> S>);
1613 impl<S: State> sealed::Sealed for SetSubscribedPost<S> {}
1614 impl<S: State> State for SetSubscribedPost<S> {
1615 type LikeViaRepost = S::LikeViaRepost;
1616 type Quote = S::Quote;
1617 type Verified = S::Verified;
1618 type Chat = S::Chat;
1619 type Reply = S::Reply;
1620 type Repost = S::Repost;
1621 type Follow = S::Follow;
1622 type Like = S::Like;
1623 type StarterpackJoined = S::StarterpackJoined;
1624 type Unverified = S::Unverified;
1625 type Mention = S::Mention;
1626 type RepostViaRepost = S::RepostViaRepost;
1627 type SubscribedPost = Set<members::subscribed_post>;
1628 }
1629 /// Marker types for field names
1630 #[allow(non_camel_case_types)]
1631 pub mod members {
1632 ///Marker type for the `like_via_repost` field
1633 pub struct like_via_repost(());
1634 ///Marker type for the `quote` field
1635 pub struct quote(());
1636 ///Marker type for the `verified` field
1637 pub struct verified(());
1638 ///Marker type for the `chat` field
1639 pub struct chat(());
1640 ///Marker type for the `reply` field
1641 pub struct reply(());
1642 ///Marker type for the `repost` field
1643 pub struct repost(());
1644 ///Marker type for the `follow` field
1645 pub struct follow(());
1646 ///Marker type for the `like` field
1647 pub struct like(());
1648 ///Marker type for the `starterpack_joined` field
1649 pub struct starterpack_joined(());
1650 ///Marker type for the `unverified` field
1651 pub struct unverified(());
1652 ///Marker type for the `mention` field
1653 pub struct mention(());
1654 ///Marker type for the `repost_via_repost` field
1655 pub struct repost_via_repost(());
1656 ///Marker type for the `subscribed_post` field
1657 pub struct subscribed_post(());
1658 }
1659}
1660
1661/// Builder for constructing an instance of this type
1662pub struct PreferencesBuilder<'a, S: preferences_state::State> {
1663 _phantom_state: ::core::marker::PhantomData<fn() -> S>,
1664 __unsafe_private_named: (
1665 ::core::option::Option<crate::app_bsky::notification::ChatPreference<'a>>,
1666 ::core::option::Option<crate::app_bsky::notification::FilterablePreference<'a>>,
1667 ::core::option::Option<crate::app_bsky::notification::FilterablePreference<'a>>,
1668 ::core::option::Option<crate::app_bsky::notification::FilterablePreference<'a>>,
1669 ::core::option::Option<crate::app_bsky::notification::FilterablePreference<'a>>,
1670 ::core::option::Option<crate::app_bsky::notification::FilterablePreference<'a>>,
1671 ::core::option::Option<crate::app_bsky::notification::FilterablePreference<'a>>,
1672 ::core::option::Option<crate::app_bsky::notification::FilterablePreference<'a>>,
1673 ::core::option::Option<crate::app_bsky::notification::FilterablePreference<'a>>,
1674 ::core::option::Option<crate::app_bsky::notification::Preference<'a>>,
1675 ::core::option::Option<crate::app_bsky::notification::Preference<'a>>,
1676 ::core::option::Option<crate::app_bsky::notification::Preference<'a>>,
1677 ::core::option::Option<crate::app_bsky::notification::Preference<'a>>,
1678 ),
1679 _phantom: ::core::marker::PhantomData<&'a ()>,
1680}
1681
1682impl<'a> Preferences<'a> {
1683 /// Create a new builder for this type
1684 pub fn new() -> PreferencesBuilder<'a, preferences_state::Empty> {
1685 PreferencesBuilder::new()
1686 }
1687}
1688
1689impl<'a> PreferencesBuilder<'a, preferences_state::Empty> {
1690 /// Create a new builder with all fields unset
1691 pub fn new() -> Self {
1692 PreferencesBuilder {
1693 _phantom_state: ::core::marker::PhantomData,
1694 __unsafe_private_named: (
1695 None,
1696 None,
1697 None,
1698 None,
1699 None,
1700 None,
1701 None,
1702 None,
1703 None,
1704 None,
1705 None,
1706 None,
1707 None,
1708 ),
1709 _phantom: ::core::marker::PhantomData,
1710 }
1711 }
1712}
1713
1714impl<'a, S> PreferencesBuilder<'a, S>
1715where
1716 S: preferences_state::State,
1717 S::Chat: preferences_state::IsUnset,
1718{
1719 /// Set the `chat` field (required)
1720 pub fn chat(
1721 mut self,
1722 value: impl Into<crate::app_bsky::notification::ChatPreference<'a>>,
1723 ) -> PreferencesBuilder<'a, preferences_state::SetChat<S>> {
1724 self.__unsafe_private_named.0 = ::core::option::Option::Some(value.into());
1725 PreferencesBuilder {
1726 _phantom_state: ::core::marker::PhantomData,
1727 __unsafe_private_named: self.__unsafe_private_named,
1728 _phantom: ::core::marker::PhantomData,
1729 }
1730 }
1731}
1732
1733impl<'a, S> PreferencesBuilder<'a, S>
1734where
1735 S: preferences_state::State,
1736 S::Follow: preferences_state::IsUnset,
1737{
1738 /// Set the `follow` field (required)
1739 pub fn follow(
1740 mut self,
1741 value: impl Into<crate::app_bsky::notification::FilterablePreference<'a>>,
1742 ) -> PreferencesBuilder<'a, preferences_state::SetFollow<S>> {
1743 self.__unsafe_private_named.1 = ::core::option::Option::Some(value.into());
1744 PreferencesBuilder {
1745 _phantom_state: ::core::marker::PhantomData,
1746 __unsafe_private_named: self.__unsafe_private_named,
1747 _phantom: ::core::marker::PhantomData,
1748 }
1749 }
1750}
1751
1752impl<'a, S> PreferencesBuilder<'a, S>
1753where
1754 S: preferences_state::State,
1755 S::Like: preferences_state::IsUnset,
1756{
1757 /// Set the `like` field (required)
1758 pub fn like(
1759 mut self,
1760 value: impl Into<crate::app_bsky::notification::FilterablePreference<'a>>,
1761 ) -> PreferencesBuilder<'a, preferences_state::SetLike<S>> {
1762 self.__unsafe_private_named.2 = ::core::option::Option::Some(value.into());
1763 PreferencesBuilder {
1764 _phantom_state: ::core::marker::PhantomData,
1765 __unsafe_private_named: self.__unsafe_private_named,
1766 _phantom: ::core::marker::PhantomData,
1767 }
1768 }
1769}
1770
1771impl<'a, S> PreferencesBuilder<'a, S>
1772where
1773 S: preferences_state::State,
1774 S::LikeViaRepost: preferences_state::IsUnset,
1775{
1776 /// Set the `likeViaRepost` field (required)
1777 pub fn like_via_repost(
1778 mut self,
1779 value: impl Into<crate::app_bsky::notification::FilterablePreference<'a>>,
1780 ) -> PreferencesBuilder<'a, preferences_state::SetLikeViaRepost<S>> {
1781 self.__unsafe_private_named.3 = ::core::option::Option::Some(value.into());
1782 PreferencesBuilder {
1783 _phantom_state: ::core::marker::PhantomData,
1784 __unsafe_private_named: self.__unsafe_private_named,
1785 _phantom: ::core::marker::PhantomData,
1786 }
1787 }
1788}
1789
1790impl<'a, S> PreferencesBuilder<'a, S>
1791where
1792 S: preferences_state::State,
1793 S::Mention: preferences_state::IsUnset,
1794{
1795 /// Set the `mention` field (required)
1796 pub fn mention(
1797 mut self,
1798 value: impl Into<crate::app_bsky::notification::FilterablePreference<'a>>,
1799 ) -> PreferencesBuilder<'a, preferences_state::SetMention<S>> {
1800 self.__unsafe_private_named.4 = ::core::option::Option::Some(value.into());
1801 PreferencesBuilder {
1802 _phantom_state: ::core::marker::PhantomData,
1803 __unsafe_private_named: self.__unsafe_private_named,
1804 _phantom: ::core::marker::PhantomData,
1805 }
1806 }
1807}
1808
1809impl<'a, S> PreferencesBuilder<'a, S>
1810where
1811 S: preferences_state::State,
1812 S::Quote: preferences_state::IsUnset,
1813{
1814 /// Set the `quote` field (required)
1815 pub fn quote(
1816 mut self,
1817 value: impl Into<crate::app_bsky::notification::FilterablePreference<'a>>,
1818 ) -> PreferencesBuilder<'a, preferences_state::SetQuote<S>> {
1819 self.__unsafe_private_named.5 = ::core::option::Option::Some(value.into());
1820 PreferencesBuilder {
1821 _phantom_state: ::core::marker::PhantomData,
1822 __unsafe_private_named: self.__unsafe_private_named,
1823 _phantom: ::core::marker::PhantomData,
1824 }
1825 }
1826}
1827
1828impl<'a, S> PreferencesBuilder<'a, S>
1829where
1830 S: preferences_state::State,
1831 S::Reply: preferences_state::IsUnset,
1832{
1833 /// Set the `reply` field (required)
1834 pub fn reply(
1835 mut self,
1836 value: impl Into<crate::app_bsky::notification::FilterablePreference<'a>>,
1837 ) -> PreferencesBuilder<'a, preferences_state::SetReply<S>> {
1838 self.__unsafe_private_named.6 = ::core::option::Option::Some(value.into());
1839 PreferencesBuilder {
1840 _phantom_state: ::core::marker::PhantomData,
1841 __unsafe_private_named: self.__unsafe_private_named,
1842 _phantom: ::core::marker::PhantomData,
1843 }
1844 }
1845}
1846
1847impl<'a, S> PreferencesBuilder<'a, S>
1848where
1849 S: preferences_state::State,
1850 S::Repost: preferences_state::IsUnset,
1851{
1852 /// Set the `repost` field (required)
1853 pub fn repost(
1854 mut self,
1855 value: impl Into<crate::app_bsky::notification::FilterablePreference<'a>>,
1856 ) -> PreferencesBuilder<'a, preferences_state::SetRepost<S>> {
1857 self.__unsafe_private_named.7 = ::core::option::Option::Some(value.into());
1858 PreferencesBuilder {
1859 _phantom_state: ::core::marker::PhantomData,
1860 __unsafe_private_named: self.__unsafe_private_named,
1861 _phantom: ::core::marker::PhantomData,
1862 }
1863 }
1864}
1865
1866impl<'a, S> PreferencesBuilder<'a, S>
1867where
1868 S: preferences_state::State,
1869 S::RepostViaRepost: preferences_state::IsUnset,
1870{
1871 /// Set the `repostViaRepost` field (required)
1872 pub fn repost_via_repost(
1873 mut self,
1874 value: impl Into<crate::app_bsky::notification::FilterablePreference<'a>>,
1875 ) -> PreferencesBuilder<'a, preferences_state::SetRepostViaRepost<S>> {
1876 self.__unsafe_private_named.8 = ::core::option::Option::Some(value.into());
1877 PreferencesBuilder {
1878 _phantom_state: ::core::marker::PhantomData,
1879 __unsafe_private_named: self.__unsafe_private_named,
1880 _phantom: ::core::marker::PhantomData,
1881 }
1882 }
1883}
1884
1885impl<'a, S> PreferencesBuilder<'a, S>
1886where
1887 S: preferences_state::State,
1888 S::StarterpackJoined: preferences_state::IsUnset,
1889{
1890 /// Set the `starterpackJoined` field (required)
1891 pub fn starterpack_joined(
1892 mut self,
1893 value: impl Into<crate::app_bsky::notification::Preference<'a>>,
1894 ) -> PreferencesBuilder<'a, preferences_state::SetStarterpackJoined<S>> {
1895 self.__unsafe_private_named.9 = ::core::option::Option::Some(value.into());
1896 PreferencesBuilder {
1897 _phantom_state: ::core::marker::PhantomData,
1898 __unsafe_private_named: self.__unsafe_private_named,
1899 _phantom: ::core::marker::PhantomData,
1900 }
1901 }
1902}
1903
1904impl<'a, S> PreferencesBuilder<'a, S>
1905where
1906 S: preferences_state::State,
1907 S::SubscribedPost: preferences_state::IsUnset,
1908{
1909 /// Set the `subscribedPost` field (required)
1910 pub fn subscribed_post(
1911 mut self,
1912 value: impl Into<crate::app_bsky::notification::Preference<'a>>,
1913 ) -> PreferencesBuilder<'a, preferences_state::SetSubscribedPost<S>> {
1914 self.__unsafe_private_named.10 = ::core::option::Option::Some(value.into());
1915 PreferencesBuilder {
1916 _phantom_state: ::core::marker::PhantomData,
1917 __unsafe_private_named: self.__unsafe_private_named,
1918 _phantom: ::core::marker::PhantomData,
1919 }
1920 }
1921}
1922
1923impl<'a, S> PreferencesBuilder<'a, S>
1924where
1925 S: preferences_state::State,
1926 S::Unverified: preferences_state::IsUnset,
1927{
1928 /// Set the `unverified` field (required)
1929 pub fn unverified(
1930 mut self,
1931 value: impl Into<crate::app_bsky::notification::Preference<'a>>,
1932 ) -> PreferencesBuilder<'a, preferences_state::SetUnverified<S>> {
1933 self.__unsafe_private_named.11 = ::core::option::Option::Some(value.into());
1934 PreferencesBuilder {
1935 _phantom_state: ::core::marker::PhantomData,
1936 __unsafe_private_named: self.__unsafe_private_named,
1937 _phantom: ::core::marker::PhantomData,
1938 }
1939 }
1940}
1941
1942impl<'a, S> PreferencesBuilder<'a, S>
1943where
1944 S: preferences_state::State,
1945 S::Verified: preferences_state::IsUnset,
1946{
1947 /// Set the `verified` field (required)
1948 pub fn verified(
1949 mut self,
1950 value: impl Into<crate::app_bsky::notification::Preference<'a>>,
1951 ) -> PreferencesBuilder<'a, preferences_state::SetVerified<S>> {
1952 self.__unsafe_private_named.12 = ::core::option::Option::Some(value.into());
1953 PreferencesBuilder {
1954 _phantom_state: ::core::marker::PhantomData,
1955 __unsafe_private_named: self.__unsafe_private_named,
1956 _phantom: ::core::marker::PhantomData,
1957 }
1958 }
1959}
1960
1961impl<'a, S> PreferencesBuilder<'a, S>
1962where
1963 S: preferences_state::State,
1964 S::LikeViaRepost: preferences_state::IsSet,
1965 S::Quote: preferences_state::IsSet,
1966 S::Verified: preferences_state::IsSet,
1967 S::Chat: preferences_state::IsSet,
1968 S::Reply: preferences_state::IsSet,
1969 S::Repost: preferences_state::IsSet,
1970 S::Follow: preferences_state::IsSet,
1971 S::Like: preferences_state::IsSet,
1972 S::StarterpackJoined: preferences_state::IsSet,
1973 S::Unverified: preferences_state::IsSet,
1974 S::Mention: preferences_state::IsSet,
1975 S::RepostViaRepost: preferences_state::IsSet,
1976 S::SubscribedPost: preferences_state::IsSet,
1977{
1978 /// Build the final struct
1979 pub fn build(self) -> Preferences<'a> {
1980 Preferences {
1981 chat: self.__unsafe_private_named.0.unwrap(),
1982 follow: self.__unsafe_private_named.1.unwrap(),
1983 like: self.__unsafe_private_named.2.unwrap(),
1984 like_via_repost: self.__unsafe_private_named.3.unwrap(),
1985 mention: self.__unsafe_private_named.4.unwrap(),
1986 quote: self.__unsafe_private_named.5.unwrap(),
1987 reply: self.__unsafe_private_named.6.unwrap(),
1988 repost: self.__unsafe_private_named.7.unwrap(),
1989 repost_via_repost: self.__unsafe_private_named.8.unwrap(),
1990 starterpack_joined: self.__unsafe_private_named.9.unwrap(),
1991 subscribed_post: self.__unsafe_private_named.10.unwrap(),
1992 unverified: self.__unsafe_private_named.11.unwrap(),
1993 verified: self.__unsafe_private_named.12.unwrap(),
1994 extra_data: Default::default(),
1995 }
1996 }
1997 /// Build the final struct with custom extra_data
1998 pub fn build_with_data(
1999 self,
2000 extra_data: std::collections::BTreeMap<
2001 jacquard_common::smol_str::SmolStr,
2002 jacquard_common::types::value::Data<'a>,
2003 >,
2004 ) -> Preferences<'a> {
2005 Preferences {
2006 chat: self.__unsafe_private_named.0.unwrap(),
2007 follow: self.__unsafe_private_named.1.unwrap(),
2008 like: self.__unsafe_private_named.2.unwrap(),
2009 like_via_repost: self.__unsafe_private_named.3.unwrap(),
2010 mention: self.__unsafe_private_named.4.unwrap(),
2011 quote: self.__unsafe_private_named.5.unwrap(),
2012 reply: self.__unsafe_private_named.6.unwrap(),
2013 repost: self.__unsafe_private_named.7.unwrap(),
2014 repost_via_repost: self.__unsafe_private_named.8.unwrap(),
2015 starterpack_joined: self.__unsafe_private_named.9.unwrap(),
2016 subscribed_post: self.__unsafe_private_named.10.unwrap(),
2017 unverified: self.__unsafe_private_named.11.unwrap(),
2018 verified: self.__unsafe_private_named.12.unwrap(),
2019 extra_data: Some(extra_data),
2020 }
2021 }
2022}
2023
2024impl<'a> ::jacquard_lexicon::schema::LexiconSchema for Preferences<'a> {
2025 fn nsid() -> &'static str {
2026 "app.bsky.notification.defs"
2027 }
2028 fn def_name() -> &'static str {
2029 "preferences"
2030 }
2031 fn lexicon_doc() -> ::jacquard_lexicon::lexicon::LexiconDoc<'static> {
2032 lexicon_doc_app_bsky_notification_defs()
2033 }
2034 fn validate(
2035 &self,
2036 ) -> ::core::result::Result<(), ::jacquard_lexicon::validation::ConstraintError> {
2037 Ok(())
2038 }
2039}
2040
2041#[jacquard_derive::lexicon]
2042#[derive(
2043 serde::Serialize,
2044 serde::Deserialize,
2045 Debug,
2046 Clone,
2047 PartialEq,
2048 Eq,
2049 jacquard_derive::IntoStatic,
2050 Default
2051)]
2052#[serde(rename_all = "camelCase")]
2053pub struct RecordDeleted<'a> {}
2054impl<'a> ::jacquard_lexicon::schema::LexiconSchema for RecordDeleted<'a> {
2055 fn nsid() -> &'static str {
2056 "app.bsky.notification.defs"
2057 }
2058 fn def_name() -> &'static str {
2059 "recordDeleted"
2060 }
2061 fn lexicon_doc() -> ::jacquard_lexicon::lexicon::LexiconDoc<'static> {
2062 lexicon_doc_app_bsky_notification_defs()
2063 }
2064 fn validate(
2065 &self,
2066 ) -> ::core::result::Result<(), ::jacquard_lexicon::validation::ConstraintError> {
2067 Ok(())
2068 }
2069}
2070
2071/// Object used to store activity subscription data in stash.
2072#[jacquard_derive::lexicon]
2073#[derive(
2074 serde::Serialize,
2075 serde::Deserialize,
2076 Debug,
2077 Clone,
2078 PartialEq,
2079 Eq,
2080 jacquard_derive::IntoStatic
2081)]
2082#[serde(rename_all = "camelCase")]
2083pub struct SubjectActivitySubscription<'a> {
2084 #[serde(borrow)]
2085 pub activity_subscription: crate::app_bsky::notification::ActivitySubscription<'a>,
2086 #[serde(borrow)]
2087 pub subject: jacquard_common::types::string::Did<'a>,
2088}
2089
2090pub mod subject_activity_subscription_state {
2091
2092 pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
2093 #[allow(unused)]
2094 use ::core::marker::PhantomData;
2095 mod sealed {
2096 pub trait Sealed {}
2097 }
2098 /// State trait tracking which required fields have been set
2099 pub trait State: sealed::Sealed {
2100 type ActivitySubscription;
2101 type Subject;
2102 }
2103 /// Empty state - all required fields are unset
2104 pub struct Empty(());
2105 impl sealed::Sealed for Empty {}
2106 impl State for Empty {
2107 type ActivitySubscription = Unset;
2108 type Subject = Unset;
2109 }
2110 ///State transition - sets the `activity_subscription` field to Set
2111 pub struct SetActivitySubscription<S: State = Empty>(PhantomData<fn() -> S>);
2112 impl<S: State> sealed::Sealed for SetActivitySubscription<S> {}
2113 impl<S: State> State for SetActivitySubscription<S> {
2114 type ActivitySubscription = Set<members::activity_subscription>;
2115 type Subject = S::Subject;
2116 }
2117 ///State transition - sets the `subject` field to Set
2118 pub struct SetSubject<S: State = Empty>(PhantomData<fn() -> S>);
2119 impl<S: State> sealed::Sealed for SetSubject<S> {}
2120 impl<S: State> State for SetSubject<S> {
2121 type ActivitySubscription = S::ActivitySubscription;
2122 type Subject = Set<members::subject>;
2123 }
2124 /// Marker types for field names
2125 #[allow(non_camel_case_types)]
2126 pub mod members {
2127 ///Marker type for the `activity_subscription` field
2128 pub struct activity_subscription(());
2129 ///Marker type for the `subject` field
2130 pub struct subject(());
2131 }
2132}
2133
2134/// Builder for constructing an instance of this type
2135pub struct SubjectActivitySubscriptionBuilder<
2136 'a,
2137 S: subject_activity_subscription_state::State,
2138> {
2139 _phantom_state: ::core::marker::PhantomData<fn() -> S>,
2140 __unsafe_private_named: (
2141 ::core::option::Option<crate::app_bsky::notification::ActivitySubscription<'a>>,
2142 ::core::option::Option<jacquard_common::types::string::Did<'a>>,
2143 ),
2144 _phantom: ::core::marker::PhantomData<&'a ()>,
2145}
2146
2147impl<'a> SubjectActivitySubscription<'a> {
2148 /// Create a new builder for this type
2149 pub fn new() -> SubjectActivitySubscriptionBuilder<
2150 'a,
2151 subject_activity_subscription_state::Empty,
2152 > {
2153 SubjectActivitySubscriptionBuilder::new()
2154 }
2155}
2156
2157impl<
2158 'a,
2159> SubjectActivitySubscriptionBuilder<'a, subject_activity_subscription_state::Empty> {
2160 /// Create a new builder with all fields unset
2161 pub fn new() -> Self {
2162 SubjectActivitySubscriptionBuilder {
2163 _phantom_state: ::core::marker::PhantomData,
2164 __unsafe_private_named: (None, None),
2165 _phantom: ::core::marker::PhantomData,
2166 }
2167 }
2168}
2169
2170impl<'a, S> SubjectActivitySubscriptionBuilder<'a, S>
2171where
2172 S: subject_activity_subscription_state::State,
2173 S::ActivitySubscription: subject_activity_subscription_state::IsUnset,
2174{
2175 /// Set the `activitySubscription` field (required)
2176 pub fn activity_subscription(
2177 mut self,
2178 value: impl Into<crate::app_bsky::notification::ActivitySubscription<'a>>,
2179 ) -> SubjectActivitySubscriptionBuilder<
2180 'a,
2181 subject_activity_subscription_state::SetActivitySubscription<S>,
2182 > {
2183 self.__unsafe_private_named.0 = ::core::option::Option::Some(value.into());
2184 SubjectActivitySubscriptionBuilder {
2185 _phantom_state: ::core::marker::PhantomData,
2186 __unsafe_private_named: self.__unsafe_private_named,
2187 _phantom: ::core::marker::PhantomData,
2188 }
2189 }
2190}
2191
2192impl<'a, S> SubjectActivitySubscriptionBuilder<'a, S>
2193where
2194 S: subject_activity_subscription_state::State,
2195 S::Subject: subject_activity_subscription_state::IsUnset,
2196{
2197 /// Set the `subject` field (required)
2198 pub fn subject(
2199 mut self,
2200 value: impl Into<jacquard_common::types::string::Did<'a>>,
2201 ) -> SubjectActivitySubscriptionBuilder<
2202 'a,
2203 subject_activity_subscription_state::SetSubject<S>,
2204 > {
2205 self.__unsafe_private_named.1 = ::core::option::Option::Some(value.into());
2206 SubjectActivitySubscriptionBuilder {
2207 _phantom_state: ::core::marker::PhantomData,
2208 __unsafe_private_named: self.__unsafe_private_named,
2209 _phantom: ::core::marker::PhantomData,
2210 }
2211 }
2212}
2213
2214impl<'a, S> SubjectActivitySubscriptionBuilder<'a, S>
2215where
2216 S: subject_activity_subscription_state::State,
2217 S::ActivitySubscription: subject_activity_subscription_state::IsSet,
2218 S::Subject: subject_activity_subscription_state::IsSet,
2219{
2220 /// Build the final struct
2221 pub fn build(self) -> SubjectActivitySubscription<'a> {
2222 SubjectActivitySubscription {
2223 activity_subscription: self.__unsafe_private_named.0.unwrap(),
2224 subject: self.__unsafe_private_named.1.unwrap(),
2225 extra_data: Default::default(),
2226 }
2227 }
2228 /// Build the final struct with custom extra_data
2229 pub fn build_with_data(
2230 self,
2231 extra_data: std::collections::BTreeMap<
2232 jacquard_common::smol_str::SmolStr,
2233 jacquard_common::types::value::Data<'a>,
2234 >,
2235 ) -> SubjectActivitySubscription<'a> {
2236 SubjectActivitySubscription {
2237 activity_subscription: self.__unsafe_private_named.0.unwrap(),
2238 subject: self.__unsafe_private_named.1.unwrap(),
2239 extra_data: Some(extra_data),
2240 }
2241 }
2242}
2243
2244impl<'a> ::jacquard_lexicon::schema::LexiconSchema for SubjectActivitySubscription<'a> {
2245 fn nsid() -> &'static str {
2246 "app.bsky.notification.defs"
2247 }
2248 fn def_name() -> &'static str {
2249 "subjectActivitySubscription"
2250 }
2251 fn lexicon_doc() -> ::jacquard_lexicon::lexicon::LexiconDoc<'static> {
2252 lexicon_doc_app_bsky_notification_defs()
2253 }
2254 fn validate(
2255 &self,
2256 ) -> ::core::result::Result<(), ::jacquard_lexicon::validation::ConstraintError> {
2257 Ok(())
2258 }
2259}