1pub mod add_member;
9pub mod delete_member;
10pub mod list_members;
11pub mod update_member;
12
13#[jacquard_derive::lexicon]
14#[derive(
15 serde::Serialize,
16 serde::Deserialize,
17 Debug,
18 Clone,
19 PartialEq,
20 Eq,
21 jacquard_derive::IntoStatic
22)]
23#[serde(rename_all = "camelCase")]
24pub struct Member<'a> {
25 #[serde(skip_serializing_if = "std::option::Option::is_none")]
26 pub created_at: Option<jacquard_common::types::string::Datetime>,
27 #[serde(borrow)]
28 pub did: jacquard_common::types::string::Did<'a>,
29 #[serde(skip_serializing_if = "std::option::Option::is_none")]
30 pub disabled: Option<bool>,
31 #[serde(skip_serializing_if = "std::option::Option::is_none")]
32 #[serde(borrow)]
33 pub last_updated_by: Option<jacquard_common::CowStr<'a>>,
34 #[serde(skip_serializing_if = "std::option::Option::is_none")]
35 #[serde(borrow)]
36 pub profile: Option<crate::app_bsky::actor::ProfileViewDetailed<'a>>,
37 #[serde(borrow)]
38 pub role: jacquard_common::CowStr<'a>,
39 #[serde(skip_serializing_if = "std::option::Option::is_none")]
40 pub updated_at: Option<jacquard_common::types::string::Datetime>,
41}
42
43pub mod member_state {
44
45 pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
46 #[allow(unused)]
47 use ::core::marker::PhantomData;
48 mod sealed {
49 pub trait Sealed {}
50 }
51 pub trait State: sealed::Sealed {
53 type Did;
54 type Role;
55 }
56 pub struct Empty(());
58 impl sealed::Sealed for Empty {}
59 impl State for Empty {
60 type Did = Unset;
61 type Role = Unset;
62 }
63 pub struct SetDid<S: State = Empty>(PhantomData<fn() -> S>);
65 impl<S: State> sealed::Sealed for SetDid<S> {}
66 impl<S: State> State for SetDid<S> {
67 type Did = Set<members::did>;
68 type Role = S::Role;
69 }
70 pub struct SetRole<S: State = Empty>(PhantomData<fn() -> S>);
72 impl<S: State> sealed::Sealed for SetRole<S> {}
73 impl<S: State> State for SetRole<S> {
74 type Did = S::Did;
75 type Role = Set<members::role>;
76 }
77 #[allow(non_camel_case_types)]
79 pub mod members {
80 pub struct did(());
82 pub struct role(());
84 }
85}
86
87pub struct MemberBuilder<'a, S: member_state::State> {
89 _phantom_state: ::core::marker::PhantomData<fn() -> S>,
90 __unsafe_private_named: (
91 ::core::option::Option<jacquard_common::types::string::Datetime>,
92 ::core::option::Option<jacquard_common::types::string::Did<'a>>,
93 ::core::option::Option<bool>,
94 ::core::option::Option<jacquard_common::CowStr<'a>>,
95 ::core::option::Option<crate::app_bsky::actor::ProfileViewDetailed<'a>>,
96 ::core::option::Option<jacquard_common::CowStr<'a>>,
97 ::core::option::Option<jacquard_common::types::string::Datetime>,
98 ),
99 _phantom: ::core::marker::PhantomData<&'a ()>,
100}
101
102impl<'a> Member<'a> {
103 pub fn new() -> MemberBuilder<'a, member_state::Empty> {
105 MemberBuilder::new()
106 }
107}
108
109impl<'a> MemberBuilder<'a, member_state::Empty> {
110 pub fn new() -> Self {
112 MemberBuilder {
113 _phantom_state: ::core::marker::PhantomData,
114 __unsafe_private_named: (None, None, None, None, None, None, None),
115 _phantom: ::core::marker::PhantomData,
116 }
117 }
118}
119
120impl<'a, S: member_state::State> MemberBuilder<'a, S> {
121 pub fn created_at(
123 mut self,
124 value: impl Into<Option<jacquard_common::types::string::Datetime>>,
125 ) -> Self {
126 self.__unsafe_private_named.0 = value.into();
127 self
128 }
129 pub fn maybe_created_at(
131 mut self,
132 value: Option<jacquard_common::types::string::Datetime>,
133 ) -> Self {
134 self.__unsafe_private_named.0 = value;
135 self
136 }
137}
138
139impl<'a, S> MemberBuilder<'a, S>
140where
141 S: member_state::State,
142 S::Did: member_state::IsUnset,
143{
144 pub fn did(
146 mut self,
147 value: impl Into<jacquard_common::types::string::Did<'a>>,
148 ) -> MemberBuilder<'a, member_state::SetDid<S>> {
149 self.__unsafe_private_named.1 = ::core::option::Option::Some(value.into());
150 MemberBuilder {
151 _phantom_state: ::core::marker::PhantomData,
152 __unsafe_private_named: self.__unsafe_private_named,
153 _phantom: ::core::marker::PhantomData,
154 }
155 }
156}
157
158impl<'a, S: member_state::State> MemberBuilder<'a, S> {
159 pub fn disabled(mut self, value: impl Into<Option<bool>>) -> Self {
161 self.__unsafe_private_named.2 = value.into();
162 self
163 }
164 pub fn maybe_disabled(mut self, value: Option<bool>) -> Self {
166 self.__unsafe_private_named.2 = value;
167 self
168 }
169}
170
171impl<'a, S: member_state::State> MemberBuilder<'a, S> {
172 pub fn last_updated_by(
174 mut self,
175 value: impl Into<Option<jacquard_common::CowStr<'a>>>,
176 ) -> Self {
177 self.__unsafe_private_named.3 = value.into();
178 self
179 }
180 pub fn maybe_last_updated_by(
182 mut self,
183 value: Option<jacquard_common::CowStr<'a>>,
184 ) -> Self {
185 self.__unsafe_private_named.3 = value;
186 self
187 }
188}
189
190impl<'a, S: member_state::State> MemberBuilder<'a, S> {
191 pub fn profile(
193 mut self,
194 value: impl Into<Option<crate::app_bsky::actor::ProfileViewDetailed<'a>>>,
195 ) -> Self {
196 self.__unsafe_private_named.4 = value.into();
197 self
198 }
199 pub fn maybe_profile(
201 mut self,
202 value: Option<crate::app_bsky::actor::ProfileViewDetailed<'a>>,
203 ) -> Self {
204 self.__unsafe_private_named.4 = value;
205 self
206 }
207}
208
209impl<'a, S> MemberBuilder<'a, S>
210where
211 S: member_state::State,
212 S::Role: member_state::IsUnset,
213{
214 pub fn role(
216 mut self,
217 value: impl Into<jacquard_common::CowStr<'a>>,
218 ) -> MemberBuilder<'a, member_state::SetRole<S>> {
219 self.__unsafe_private_named.5 = ::core::option::Option::Some(value.into());
220 MemberBuilder {
221 _phantom_state: ::core::marker::PhantomData,
222 __unsafe_private_named: self.__unsafe_private_named,
223 _phantom: ::core::marker::PhantomData,
224 }
225 }
226}
227
228impl<'a, S: member_state::State> MemberBuilder<'a, S> {
229 pub fn updated_at(
231 mut self,
232 value: impl Into<Option<jacquard_common::types::string::Datetime>>,
233 ) -> Self {
234 self.__unsafe_private_named.6 = value.into();
235 self
236 }
237 pub fn maybe_updated_at(
239 mut self,
240 value: Option<jacquard_common::types::string::Datetime>,
241 ) -> Self {
242 self.__unsafe_private_named.6 = value;
243 self
244 }
245}
246
247impl<'a, S> MemberBuilder<'a, S>
248where
249 S: member_state::State,
250 S::Did: member_state::IsSet,
251 S::Role: member_state::IsSet,
252{
253 pub fn build(self) -> Member<'a> {
255 Member {
256 created_at: self.__unsafe_private_named.0,
257 did: self.__unsafe_private_named.1.unwrap(),
258 disabled: self.__unsafe_private_named.2,
259 last_updated_by: self.__unsafe_private_named.3,
260 profile: self.__unsafe_private_named.4,
261 role: self.__unsafe_private_named.5.unwrap(),
262 updated_at: self.__unsafe_private_named.6,
263 extra_data: Default::default(),
264 }
265 }
266 pub fn build_with_data(
268 self,
269 extra_data: std::collections::BTreeMap<
270 jacquard_common::smol_str::SmolStr,
271 jacquard_common::types::value::Data<'a>,
272 >,
273 ) -> Member<'a> {
274 Member {
275 created_at: self.__unsafe_private_named.0,
276 did: self.__unsafe_private_named.1.unwrap(),
277 disabled: self.__unsafe_private_named.2,
278 last_updated_by: self.__unsafe_private_named.3,
279 profile: self.__unsafe_private_named.4,
280 role: self.__unsafe_private_named.5.unwrap(),
281 updated_at: self.__unsafe_private_named.6,
282 extra_data: Some(extra_data),
283 }
284 }
285}
286
287fn lexicon_doc_tools_ozone_team_defs() -> ::jacquard_lexicon::lexicon::LexiconDoc<
288 'static,
289> {
290 ::jacquard_lexicon::lexicon::LexiconDoc {
291 lexicon: ::jacquard_lexicon::lexicon::Lexicon::Lexicon1,
292 id: ::jacquard_common::CowStr::new_static("tools.ozone.team.defs"),
293 revision: None,
294 description: None,
295 defs: {
296 let mut map = ::std::collections::BTreeMap::new();
297 map.insert(
298 ::jacquard_common::smol_str::SmolStr::new_static("member"),
299 ::jacquard_lexicon::lexicon::LexUserType::Object(::jacquard_lexicon::lexicon::LexObject {
300 description: None,
301 required: Some(
302 vec![
303 ::jacquard_common::smol_str::SmolStr::new_static("did"),
304 ::jacquard_common::smol_str::SmolStr::new_static("role")
305 ],
306 ),
307 nullable: None,
308 properties: {
309 #[allow(unused_mut)]
310 let mut map = ::std::collections::BTreeMap::new();
311 map.insert(
312 ::jacquard_common::smol_str::SmolStr::new_static(
313 "createdAt",
314 ),
315 ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
316 description: None,
317 format: Some(
318 ::jacquard_lexicon::lexicon::LexStringFormat::Datetime,
319 ),
320 default: None,
321 min_length: None,
322 max_length: None,
323 min_graphemes: None,
324 max_graphemes: None,
325 r#enum: None,
326 r#const: None,
327 known_values: None,
328 }),
329 );
330 map.insert(
331 ::jacquard_common::smol_str::SmolStr::new_static("did"),
332 ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
333 description: None,
334 format: Some(
335 ::jacquard_lexicon::lexicon::LexStringFormat::Did,
336 ),
337 default: None,
338 min_length: None,
339 max_length: None,
340 min_graphemes: None,
341 max_graphemes: None,
342 r#enum: None,
343 r#const: None,
344 known_values: None,
345 }),
346 );
347 map.insert(
348 ::jacquard_common::smol_str::SmolStr::new_static("disabled"),
349 ::jacquard_lexicon::lexicon::LexObjectProperty::Boolean(::jacquard_lexicon::lexicon::LexBoolean {
350 description: None,
351 default: None,
352 r#const: None,
353 }),
354 );
355 map.insert(
356 ::jacquard_common::smol_str::SmolStr::new_static(
357 "lastUpdatedBy",
358 ),
359 ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
360 description: None,
361 format: None,
362 default: None,
363 min_length: None,
364 max_length: None,
365 min_graphemes: None,
366 max_graphemes: None,
367 r#enum: None,
368 r#const: None,
369 known_values: None,
370 }),
371 );
372 map.insert(
373 ::jacquard_common::smol_str::SmolStr::new_static("profile"),
374 ::jacquard_lexicon::lexicon::LexObjectProperty::Ref(::jacquard_lexicon::lexicon::LexRef {
375 description: None,
376 r#ref: ::jacquard_common::CowStr::new_static(
377 "app.bsky.actor.defs#profileViewDetailed",
378 ),
379 }),
380 );
381 map.insert(
382 ::jacquard_common::smol_str::SmolStr::new_static("role"),
383 ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
384 description: None,
385 format: None,
386 default: None,
387 min_length: None,
388 max_length: None,
389 min_graphemes: None,
390 max_graphemes: None,
391 r#enum: None,
392 r#const: None,
393 known_values: None,
394 }),
395 );
396 map.insert(
397 ::jacquard_common::smol_str::SmolStr::new_static(
398 "updatedAt",
399 ),
400 ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
401 description: None,
402 format: Some(
403 ::jacquard_lexicon::lexicon::LexStringFormat::Datetime,
404 ),
405 default: None,
406 min_length: None,
407 max_length: None,
408 min_graphemes: None,
409 max_graphemes: None,
410 r#enum: None,
411 r#const: None,
412 known_values: None,
413 }),
414 );
415 map
416 },
417 }),
418 );
419 map.insert(
420 ::jacquard_common::smol_str::SmolStr::new_static("roleAdmin"),
421 ::jacquard_lexicon::lexicon::LexUserType::Token(::jacquard_lexicon::lexicon::LexToken {
422 description: None,
423 }),
424 );
425 map.insert(
426 ::jacquard_common::smol_str::SmolStr::new_static("roleModerator"),
427 ::jacquard_lexicon::lexicon::LexUserType::Token(::jacquard_lexicon::lexicon::LexToken {
428 description: None,
429 }),
430 );
431 map.insert(
432 ::jacquard_common::smol_str::SmolStr::new_static("roleTriage"),
433 ::jacquard_lexicon::lexicon::LexUserType::Token(::jacquard_lexicon::lexicon::LexToken {
434 description: None,
435 }),
436 );
437 map.insert(
438 ::jacquard_common::smol_str::SmolStr::new_static("roleVerifier"),
439 ::jacquard_lexicon::lexicon::LexUserType::Token(::jacquard_lexicon::lexicon::LexToken {
440 description: None,
441 }),
442 );
443 map
444 },
445 }
446}
447
448impl<'a> ::jacquard_lexicon::schema::LexiconSchema for Member<'a> {
449 fn nsid() -> &'static str {
450 "tools.ozone.team.defs"
451 }
452 fn def_name() -> &'static str {
453 "member"
454 }
455 fn lexicon_doc() -> ::jacquard_lexicon::lexicon::LexiconDoc<'static> {
456 lexicon_doc_tools_ozone_team_defs()
457 }
458 fn validate(
459 &self,
460 ) -> ::std::result::Result<(), ::jacquard_lexicon::validation::ConstraintError> {
461 Ok(())
462 }
463}
464
465#[derive(
467 serde::Serialize,
468 serde::Deserialize,
469 Debug,
470 Clone,
471 PartialEq,
472 Eq,
473 Hash,
474 jacquard_derive::IntoStatic
475)]
476pub struct RoleAdmin;
477impl std::fmt::Display for RoleAdmin {
478 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
479 write!(f, "roleAdmin")
480 }
481}
482
483#[derive(
485 serde::Serialize,
486 serde::Deserialize,
487 Debug,
488 Clone,
489 PartialEq,
490 Eq,
491 Hash,
492 jacquard_derive::IntoStatic
493)]
494pub struct RoleModerator;
495impl std::fmt::Display for RoleModerator {
496 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
497 write!(f, "roleModerator")
498 }
499}
500
501#[derive(
503 serde::Serialize,
504 serde::Deserialize,
505 Debug,
506 Clone,
507 PartialEq,
508 Eq,
509 Hash,
510 jacquard_derive::IntoStatic
511)]
512pub struct RoleTriage;
513impl std::fmt::Display for RoleTriage {
514 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
515 write!(f, "roleTriage")
516 }
517}
518
519#[derive(
521 serde::Serialize,
522 serde::Deserialize,
523 Debug,
524 Clone,
525 PartialEq,
526 Eq,
527 Hash,
528 jacquard_derive::IntoStatic
529)]
530pub struct RoleVerifier;
531impl std::fmt::Display for RoleVerifier {
532 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
533 write!(f, "roleVerifier")
534 }
535}