1pub mod invite;
9pub mod request;
10
11#[jacquard_derive::lexicon]
13#[derive(
14 serde::Serialize,
15 serde::Deserialize,
16 Debug,
17 Clone,
18 PartialEq,
19 Eq,
20 jacquard_derive::IntoStatic
21)]
22#[serde(rename_all = "camelCase")]
23pub struct InviteView<'a> {
24 pub created_at: jacquard_common::types::string::Datetime,
26 #[serde(borrow)]
28 pub did: jacquard_common::types::string::Did<'a>,
29 #[serde(skip_serializing_if = "std::option::Option::is_none")]
31 pub expires_at: Option<jacquard_common::types::string::Datetime>,
32 #[serde(skip_serializing_if = "std::option::Option::is_none")]
34 #[serde(borrow)]
35 pub profile: Option<crate::app_bsky::actor::ProfileViewBasic<'a>>,
36 #[serde(borrow)]
38 pub slice: jacquard_common::types::string::AtUri<'a>,
39 #[serde(skip_serializing_if = "std::option::Option::is_none")]
41 #[serde(borrow)]
42 pub uri: Option<jacquard_common::types::string::AtUri<'a>>,
43}
44
45pub mod invite_view_state {
46
47 pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
48 #[allow(unused)]
49 use ::core::marker::PhantomData;
50 mod sealed {
51 pub trait Sealed {}
52 }
53 pub trait State: sealed::Sealed {
55 type Did;
56 type Slice;
57 type CreatedAt;
58 }
59 pub struct Empty(());
61 impl sealed::Sealed for Empty {}
62 impl State for Empty {
63 type Did = Unset;
64 type Slice = Unset;
65 type CreatedAt = Unset;
66 }
67 pub struct SetDid<S: State = Empty>(PhantomData<fn() -> S>);
69 impl<S: State> sealed::Sealed for SetDid<S> {}
70 impl<S: State> State for SetDid<S> {
71 type Did = Set<members::did>;
72 type Slice = S::Slice;
73 type CreatedAt = S::CreatedAt;
74 }
75 pub struct SetSlice<S: State = Empty>(PhantomData<fn() -> S>);
77 impl<S: State> sealed::Sealed for SetSlice<S> {}
78 impl<S: State> State for SetSlice<S> {
79 type Did = S::Did;
80 type Slice = Set<members::slice>;
81 type CreatedAt = S::CreatedAt;
82 }
83 pub struct SetCreatedAt<S: State = Empty>(PhantomData<fn() -> S>);
85 impl<S: State> sealed::Sealed for SetCreatedAt<S> {}
86 impl<S: State> State for SetCreatedAt<S> {
87 type Did = S::Did;
88 type Slice = S::Slice;
89 type CreatedAt = Set<members::created_at>;
90 }
91 #[allow(non_camel_case_types)]
93 pub mod members {
94 pub struct did(());
96 pub struct slice(());
98 pub struct created_at(());
100 }
101}
102
103pub struct InviteViewBuilder<'a, S: invite_view_state::State> {
105 _phantom_state: ::core::marker::PhantomData<fn() -> S>,
106 __unsafe_private_named: (
107 ::core::option::Option<jacquard_common::types::string::Datetime>,
108 ::core::option::Option<jacquard_common::types::string::Did<'a>>,
109 ::core::option::Option<jacquard_common::types::string::Datetime>,
110 ::core::option::Option<crate::app_bsky::actor::ProfileViewBasic<'a>>,
111 ::core::option::Option<jacquard_common::types::string::AtUri<'a>>,
112 ::core::option::Option<jacquard_common::types::string::AtUri<'a>>,
113 ),
114 _phantom: ::core::marker::PhantomData<&'a ()>,
115}
116
117impl<'a> InviteView<'a> {
118 pub fn new() -> InviteViewBuilder<'a, invite_view_state::Empty> {
120 InviteViewBuilder::new()
121 }
122}
123
124impl<'a> InviteViewBuilder<'a, invite_view_state::Empty> {
125 pub fn new() -> Self {
127 InviteViewBuilder {
128 _phantom_state: ::core::marker::PhantomData,
129 __unsafe_private_named: (None, None, None, None, None, None),
130 _phantom: ::core::marker::PhantomData,
131 }
132 }
133}
134
135impl<'a, S> InviteViewBuilder<'a, S>
136where
137 S: invite_view_state::State,
138 S::CreatedAt: invite_view_state::IsUnset,
139{
140 pub fn created_at(
142 mut self,
143 value: impl Into<jacquard_common::types::string::Datetime>,
144 ) -> InviteViewBuilder<'a, invite_view_state::SetCreatedAt<S>> {
145 self.__unsafe_private_named.0 = ::core::option::Option::Some(value.into());
146 InviteViewBuilder {
147 _phantom_state: ::core::marker::PhantomData,
148 __unsafe_private_named: self.__unsafe_private_named,
149 _phantom: ::core::marker::PhantomData,
150 }
151 }
152}
153
154impl<'a, S> InviteViewBuilder<'a, S>
155where
156 S: invite_view_state::State,
157 S::Did: invite_view_state::IsUnset,
158{
159 pub fn did(
161 mut self,
162 value: impl Into<jacquard_common::types::string::Did<'a>>,
163 ) -> InviteViewBuilder<'a, invite_view_state::SetDid<S>> {
164 self.__unsafe_private_named.1 = ::core::option::Option::Some(value.into());
165 InviteViewBuilder {
166 _phantom_state: ::core::marker::PhantomData,
167 __unsafe_private_named: self.__unsafe_private_named,
168 _phantom: ::core::marker::PhantomData,
169 }
170 }
171}
172
173impl<'a, S: invite_view_state::State> InviteViewBuilder<'a, S> {
174 pub fn expires_at(
176 mut self,
177 value: impl Into<Option<jacquard_common::types::string::Datetime>>,
178 ) -> Self {
179 self.__unsafe_private_named.2 = value.into();
180 self
181 }
182 pub fn maybe_expires_at(
184 mut self,
185 value: Option<jacquard_common::types::string::Datetime>,
186 ) -> Self {
187 self.__unsafe_private_named.2 = value;
188 self
189 }
190}
191
192impl<'a, S: invite_view_state::State> InviteViewBuilder<'a, S> {
193 pub fn profile(
195 mut self,
196 value: impl Into<Option<crate::app_bsky::actor::ProfileViewBasic<'a>>>,
197 ) -> Self {
198 self.__unsafe_private_named.3 = value.into();
199 self
200 }
201 pub fn maybe_profile(
203 mut self,
204 value: Option<crate::app_bsky::actor::ProfileViewBasic<'a>>,
205 ) -> Self {
206 self.__unsafe_private_named.3 = value;
207 self
208 }
209}
210
211impl<'a, S> InviteViewBuilder<'a, S>
212where
213 S: invite_view_state::State,
214 S::Slice: invite_view_state::IsUnset,
215{
216 pub fn slice(
218 mut self,
219 value: impl Into<jacquard_common::types::string::AtUri<'a>>,
220 ) -> InviteViewBuilder<'a, invite_view_state::SetSlice<S>> {
221 self.__unsafe_private_named.4 = ::core::option::Option::Some(value.into());
222 InviteViewBuilder {
223 _phantom_state: ::core::marker::PhantomData,
224 __unsafe_private_named: self.__unsafe_private_named,
225 _phantom: ::core::marker::PhantomData,
226 }
227 }
228}
229
230impl<'a, S: invite_view_state::State> InviteViewBuilder<'a, S> {
231 pub fn uri(
233 mut self,
234 value: impl Into<Option<jacquard_common::types::string::AtUri<'a>>>,
235 ) -> Self {
236 self.__unsafe_private_named.5 = value.into();
237 self
238 }
239 pub fn maybe_uri(
241 mut self,
242 value: Option<jacquard_common::types::string::AtUri<'a>>,
243 ) -> Self {
244 self.__unsafe_private_named.5 = value;
245 self
246 }
247}
248
249impl<'a, S> InviteViewBuilder<'a, S>
250where
251 S: invite_view_state::State,
252 S::Did: invite_view_state::IsSet,
253 S::Slice: invite_view_state::IsSet,
254 S::CreatedAt: invite_view_state::IsSet,
255{
256 pub fn build(self) -> InviteView<'a> {
258 InviteView {
259 created_at: self.__unsafe_private_named.0.unwrap(),
260 did: self.__unsafe_private_named.1.unwrap(),
261 expires_at: self.__unsafe_private_named.2,
262 profile: self.__unsafe_private_named.3,
263 slice: self.__unsafe_private_named.4.unwrap(),
264 uri: self.__unsafe_private_named.5,
265 extra_data: Default::default(),
266 }
267 }
268 pub fn build_with_data(
270 self,
271 extra_data: std::collections::BTreeMap<
272 jacquard_common::smol_str::SmolStr,
273 jacquard_common::types::value::Data<'a>,
274 >,
275 ) -> InviteView<'a> {
276 InviteView {
277 created_at: self.__unsafe_private_named.0.unwrap(),
278 did: self.__unsafe_private_named.1.unwrap(),
279 expires_at: self.__unsafe_private_named.2,
280 profile: self.__unsafe_private_named.3,
281 slice: self.__unsafe_private_named.4.unwrap(),
282 uri: self.__unsafe_private_named.5,
283 extra_data: Some(extra_data),
284 }
285 }
286}
287
288fn lexicon_doc_network_slices_waitlist_defs() -> ::jacquard_lexicon::lexicon::LexiconDoc<
289 'static,
290> {
291 ::jacquard_lexicon::lexicon::LexiconDoc {
292 lexicon: ::jacquard_lexicon::lexicon::Lexicon::Lexicon1,
293 id: ::jacquard_common::CowStr::new_static("network.slices.waitlist.defs"),
294 revision: None,
295 description: None,
296 defs: {
297 let mut map = ::std::collections::BTreeMap::new();
298 map.insert(
299 ::jacquard_common::smol_str::SmolStr::new_static("inviteView"),
300 ::jacquard_lexicon::lexicon::LexUserType::Object(::jacquard_lexicon::lexicon::LexObject {
301 description: Some(
302 ::jacquard_common::CowStr::new_static(
303 "An invite granting a DID access with profile information",
304 ),
305 ),
306 required: Some(
307 vec![
308 ::jacquard_common::smol_str::SmolStr::new_static("did"),
309 ::jacquard_common::smol_str::SmolStr::new_static("slice"),
310 ::jacquard_common::smol_str::SmolStr::new_static("createdAt")
311 ],
312 ),
313 nullable: None,
314 properties: {
315 #[allow(unused_mut)]
316 let mut map = ::std::collections::BTreeMap::new();
317 map.insert(
318 ::jacquard_common::smol_str::SmolStr::new_static(
319 "createdAt",
320 ),
321 ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
322 description: Some(
323 ::jacquard_common::CowStr::new_static(
324 "When this invitation was created",
325 ),
326 ),
327 format: Some(
328 ::jacquard_lexicon::lexicon::LexStringFormat::Datetime,
329 ),
330 default: None,
331 min_length: None,
332 max_length: None,
333 min_graphemes: None,
334 max_graphemes: None,
335 r#enum: None,
336 r#const: None,
337 known_values: None,
338 }),
339 );
340 map.insert(
341 ::jacquard_common::smol_str::SmolStr::new_static("did"),
342 ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
343 description: Some(
344 ::jacquard_common::CowStr::new_static(
345 "The DID being invited",
346 ),
347 ),
348 format: Some(
349 ::jacquard_lexicon::lexicon::LexStringFormat::Did,
350 ),
351 default: None,
352 min_length: None,
353 max_length: None,
354 min_graphemes: None,
355 max_graphemes: None,
356 r#enum: None,
357 r#const: None,
358 known_values: None,
359 }),
360 );
361 map.insert(
362 ::jacquard_common::smol_str::SmolStr::new_static(
363 "expiresAt",
364 ),
365 ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
366 description: Some(
367 ::jacquard_common::CowStr::new_static(
368 "Optional expiration date for this invitation",
369 ),
370 ),
371 format: Some(
372 ::jacquard_lexicon::lexicon::LexStringFormat::Datetime,
373 ),
374 default: None,
375 min_length: None,
376 max_length: None,
377 min_graphemes: None,
378 max_graphemes: None,
379 r#enum: None,
380 r#const: None,
381 known_values: None,
382 }),
383 );
384 map.insert(
385 ::jacquard_common::smol_str::SmolStr::new_static("profile"),
386 ::jacquard_lexicon::lexicon::LexObjectProperty::Ref(::jacquard_lexicon::lexicon::LexRef {
387 description: None,
388 r#ref: ::jacquard_common::CowStr::new_static(
389 "app.bsky.actor.defs#profileViewBasic",
390 ),
391 }),
392 );
393 map.insert(
394 ::jacquard_common::smol_str::SmolStr::new_static("slice"),
395 ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
396 description: Some(
397 ::jacquard_common::CowStr::new_static(
398 "The AT URI of the slice this invite is for",
399 ),
400 ),
401 format: Some(
402 ::jacquard_lexicon::lexicon::LexStringFormat::AtUri,
403 ),
404 default: None,
405 min_length: None,
406 max_length: None,
407 min_graphemes: None,
408 max_graphemes: None,
409 r#enum: None,
410 r#const: None,
411 known_values: None,
412 }),
413 );
414 map.insert(
415 ::jacquard_common::smol_str::SmolStr::new_static("uri"),
416 ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
417 description: Some(
418 ::jacquard_common::CowStr::new_static(
419 "The AT URI of this invite record",
420 ),
421 ),
422 format: Some(
423 ::jacquard_lexicon::lexicon::LexStringFormat::AtUri,
424 ),
425 default: None,
426 min_length: None,
427 max_length: None,
428 min_graphemes: None,
429 max_graphemes: None,
430 r#enum: None,
431 r#const: None,
432 known_values: None,
433 }),
434 );
435 map
436 },
437 }),
438 );
439 map.insert(
440 ::jacquard_common::smol_str::SmolStr::new_static("requestView"),
441 ::jacquard_lexicon::lexicon::LexUserType::Object(::jacquard_lexicon::lexicon::LexObject {
442 description: Some(
443 ::jacquard_common::CowStr::new_static(
444 "A request to join the waitlist with profile information",
445 ),
446 ),
447 required: Some(
448 vec![
449 ::jacquard_common::smol_str::SmolStr::new_static("slice"),
450 ::jacquard_common::smol_str::SmolStr::new_static("createdAt")
451 ],
452 ),
453 nullable: None,
454 properties: {
455 #[allow(unused_mut)]
456 let mut map = ::std::collections::BTreeMap::new();
457 map.insert(
458 ::jacquard_common::smol_str::SmolStr::new_static(
459 "createdAt",
460 ),
461 ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
462 description: Some(
463 ::jacquard_common::CowStr::new_static(
464 "When the user joined the waitlist",
465 ),
466 ),
467 format: Some(
468 ::jacquard_lexicon::lexicon::LexStringFormat::Datetime,
469 ),
470 default: None,
471 min_length: None,
472 max_length: None,
473 min_graphemes: None,
474 max_graphemes: None,
475 r#enum: None,
476 r#const: None,
477 known_values: None,
478 }),
479 );
480 map.insert(
481 ::jacquard_common::smol_str::SmolStr::new_static("profile"),
482 ::jacquard_lexicon::lexicon::LexObjectProperty::Ref(::jacquard_lexicon::lexicon::LexRef {
483 description: None,
484 r#ref: ::jacquard_common::CowStr::new_static(
485 "app.bsky.actor.defs#profileViewBasic",
486 ),
487 }),
488 );
489 map.insert(
490 ::jacquard_common::smol_str::SmolStr::new_static("slice"),
491 ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
492 description: Some(
493 ::jacquard_common::CowStr::new_static(
494 "The AT URI of the slice being requested access to",
495 ),
496 ),
497 format: Some(
498 ::jacquard_lexicon::lexicon::LexStringFormat::AtUri,
499 ),
500 default: None,
501 min_length: None,
502 max_length: None,
503 min_graphemes: None,
504 max_graphemes: None,
505 r#enum: None,
506 r#const: None,
507 known_values: None,
508 }),
509 );
510 map
511 },
512 }),
513 );
514 map
515 },
516 }
517}
518
519impl<'a> ::jacquard_lexicon::schema::LexiconSchema for InviteView<'a> {
520 fn nsid() -> &'static str {
521 "network.slices.waitlist.defs"
522 }
523 fn def_name() -> &'static str {
524 "inviteView"
525 }
526 fn lexicon_doc() -> ::jacquard_lexicon::lexicon::LexiconDoc<'static> {
527 lexicon_doc_network_slices_waitlist_defs()
528 }
529 fn validate(
530 &self,
531 ) -> ::std::result::Result<(), ::jacquard_lexicon::validation::ConstraintError> {
532 Ok(())
533 }
534}
535
536#[jacquard_derive::lexicon]
538#[derive(
539 serde::Serialize,
540 serde::Deserialize,
541 Debug,
542 Clone,
543 PartialEq,
544 Eq,
545 jacquard_derive::IntoStatic
546)]
547#[serde(rename_all = "camelCase")]
548pub struct RequestView<'a> {
549 pub created_at: jacquard_common::types::string::Datetime,
551 #[serde(skip_serializing_if = "std::option::Option::is_none")]
553 #[serde(borrow)]
554 pub profile: Option<crate::app_bsky::actor::ProfileViewBasic<'a>>,
555 #[serde(borrow)]
557 pub slice: jacquard_common::types::string::AtUri<'a>,
558}
559
560pub mod request_view_state {
561
562 pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
563 #[allow(unused)]
564 use ::core::marker::PhantomData;
565 mod sealed {
566 pub trait Sealed {}
567 }
568 pub trait State: sealed::Sealed {
570 type Slice;
571 type CreatedAt;
572 }
573 pub struct Empty(());
575 impl sealed::Sealed for Empty {}
576 impl State for Empty {
577 type Slice = Unset;
578 type CreatedAt = Unset;
579 }
580 pub struct SetSlice<S: State = Empty>(PhantomData<fn() -> S>);
582 impl<S: State> sealed::Sealed for SetSlice<S> {}
583 impl<S: State> State for SetSlice<S> {
584 type Slice = Set<members::slice>;
585 type CreatedAt = S::CreatedAt;
586 }
587 pub struct SetCreatedAt<S: State = Empty>(PhantomData<fn() -> S>);
589 impl<S: State> sealed::Sealed for SetCreatedAt<S> {}
590 impl<S: State> State for SetCreatedAt<S> {
591 type Slice = S::Slice;
592 type CreatedAt = Set<members::created_at>;
593 }
594 #[allow(non_camel_case_types)]
596 pub mod members {
597 pub struct slice(());
599 pub struct created_at(());
601 }
602}
603
604pub struct RequestViewBuilder<'a, S: request_view_state::State> {
606 _phantom_state: ::core::marker::PhantomData<fn() -> S>,
607 __unsafe_private_named: (
608 ::core::option::Option<jacquard_common::types::string::Datetime>,
609 ::core::option::Option<crate::app_bsky::actor::ProfileViewBasic<'a>>,
610 ::core::option::Option<jacquard_common::types::string::AtUri<'a>>,
611 ),
612 _phantom: ::core::marker::PhantomData<&'a ()>,
613}
614
615impl<'a> RequestView<'a> {
616 pub fn new() -> RequestViewBuilder<'a, request_view_state::Empty> {
618 RequestViewBuilder::new()
619 }
620}
621
622impl<'a> RequestViewBuilder<'a, request_view_state::Empty> {
623 pub fn new() -> Self {
625 RequestViewBuilder {
626 _phantom_state: ::core::marker::PhantomData,
627 __unsafe_private_named: (None, None, None),
628 _phantom: ::core::marker::PhantomData,
629 }
630 }
631}
632
633impl<'a, S> RequestViewBuilder<'a, S>
634where
635 S: request_view_state::State,
636 S::CreatedAt: request_view_state::IsUnset,
637{
638 pub fn created_at(
640 mut self,
641 value: impl Into<jacquard_common::types::string::Datetime>,
642 ) -> RequestViewBuilder<'a, request_view_state::SetCreatedAt<S>> {
643 self.__unsafe_private_named.0 = ::core::option::Option::Some(value.into());
644 RequestViewBuilder {
645 _phantom_state: ::core::marker::PhantomData,
646 __unsafe_private_named: self.__unsafe_private_named,
647 _phantom: ::core::marker::PhantomData,
648 }
649 }
650}
651
652impl<'a, S: request_view_state::State> RequestViewBuilder<'a, S> {
653 pub fn profile(
655 mut self,
656 value: impl Into<Option<crate::app_bsky::actor::ProfileViewBasic<'a>>>,
657 ) -> Self {
658 self.__unsafe_private_named.1 = value.into();
659 self
660 }
661 pub fn maybe_profile(
663 mut self,
664 value: Option<crate::app_bsky::actor::ProfileViewBasic<'a>>,
665 ) -> Self {
666 self.__unsafe_private_named.1 = value;
667 self
668 }
669}
670
671impl<'a, S> RequestViewBuilder<'a, S>
672where
673 S: request_view_state::State,
674 S::Slice: request_view_state::IsUnset,
675{
676 pub fn slice(
678 mut self,
679 value: impl Into<jacquard_common::types::string::AtUri<'a>>,
680 ) -> RequestViewBuilder<'a, request_view_state::SetSlice<S>> {
681 self.__unsafe_private_named.2 = ::core::option::Option::Some(value.into());
682 RequestViewBuilder {
683 _phantom_state: ::core::marker::PhantomData,
684 __unsafe_private_named: self.__unsafe_private_named,
685 _phantom: ::core::marker::PhantomData,
686 }
687 }
688}
689
690impl<'a, S> RequestViewBuilder<'a, S>
691where
692 S: request_view_state::State,
693 S::Slice: request_view_state::IsSet,
694 S::CreatedAt: request_view_state::IsSet,
695{
696 pub fn build(self) -> RequestView<'a> {
698 RequestView {
699 created_at: self.__unsafe_private_named.0.unwrap(),
700 profile: self.__unsafe_private_named.1,
701 slice: self.__unsafe_private_named.2.unwrap(),
702 extra_data: Default::default(),
703 }
704 }
705 pub fn build_with_data(
707 self,
708 extra_data: std::collections::BTreeMap<
709 jacquard_common::smol_str::SmolStr,
710 jacquard_common::types::value::Data<'a>,
711 >,
712 ) -> RequestView<'a> {
713 RequestView {
714 created_at: self.__unsafe_private_named.0.unwrap(),
715 profile: self.__unsafe_private_named.1,
716 slice: self.__unsafe_private_named.2.unwrap(),
717 extra_data: Some(extra_data),
718 }
719 }
720}
721
722impl<'a> ::jacquard_lexicon::schema::LexiconSchema for RequestView<'a> {
723 fn nsid() -> &'static str {
724 "network.slices.waitlist.defs"
725 }
726 fn def_name() -> &'static str {
727 "requestView"
728 }
729 fn lexicon_doc() -> ::jacquard_lexicon::lexicon::LexiconDoc<'static> {
730 lexicon_doc_network_slices_waitlist_defs()
731 }
732 fn validate(
733 &self,
734 ) -> ::std::result::Result<(), ::jacquard_lexicon::validation::ConstraintError> {
735 Ok(())
736 }
737}