atproto blogging
1// @generated by jacquard-lexicon. DO NOT EDIT.
2//
3// Lexicon: chat.bsky.moderation.getActorMetadata
4//
5// This file was automatically generated from Lexicon schemas.
6// Any manual changes will be overwritten on the next regeneration.
7
8#[derive(
9 serde::Serialize,
10 serde::Deserialize,
11 Debug,
12 Clone,
13 PartialEq,
14 Eq,
15 jacquard_derive::IntoStatic
16)]
17#[serde(rename_all = "camelCase")]
18pub struct GetActorMetadata<'a> {
19 #[serde(borrow)]
20 pub actor: jacquard_common::types::string::Did<'a>,
21}
22
23pub mod get_actor_metadata_state {
24
25 pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
26 #[allow(unused)]
27 use ::core::marker::PhantomData;
28 mod sealed {
29 pub trait Sealed {}
30 }
31 /// State trait tracking which required fields have been set
32 pub trait State: sealed::Sealed {
33 type Actor;
34 }
35 /// Empty state - all required fields are unset
36 pub struct Empty(());
37 impl sealed::Sealed for Empty {}
38 impl State for Empty {
39 type Actor = Unset;
40 }
41 ///State transition - sets the `actor` field to Set
42 pub struct SetActor<S: State = Empty>(PhantomData<fn() -> S>);
43 impl<S: State> sealed::Sealed for SetActor<S> {}
44 impl<S: State> State for SetActor<S> {
45 type Actor = Set<members::actor>;
46 }
47 /// Marker types for field names
48 #[allow(non_camel_case_types)]
49 pub mod members {
50 ///Marker type for the `actor` field
51 pub struct actor(());
52 }
53}
54
55/// Builder for constructing an instance of this type
56pub struct GetActorMetadataBuilder<'a, S: get_actor_metadata_state::State> {
57 _phantom_state: ::core::marker::PhantomData<fn() -> S>,
58 __unsafe_private_named: (
59 ::core::option::Option<jacquard_common::types::string::Did<'a>>,
60 ),
61 _phantom: ::core::marker::PhantomData<&'a ()>,
62}
63
64impl<'a> GetActorMetadata<'a> {
65 /// Create a new builder for this type
66 pub fn new() -> GetActorMetadataBuilder<'a, get_actor_metadata_state::Empty> {
67 GetActorMetadataBuilder::new()
68 }
69}
70
71impl<'a> GetActorMetadataBuilder<'a, get_actor_metadata_state::Empty> {
72 /// Create a new builder with all fields unset
73 pub fn new() -> Self {
74 GetActorMetadataBuilder {
75 _phantom_state: ::core::marker::PhantomData,
76 __unsafe_private_named: (None,),
77 _phantom: ::core::marker::PhantomData,
78 }
79 }
80}
81
82impl<'a, S> GetActorMetadataBuilder<'a, S>
83where
84 S: get_actor_metadata_state::State,
85 S::Actor: get_actor_metadata_state::IsUnset,
86{
87 /// Set the `actor` field (required)
88 pub fn actor(
89 mut self,
90 value: impl Into<jacquard_common::types::string::Did<'a>>,
91 ) -> GetActorMetadataBuilder<'a, get_actor_metadata_state::SetActor<S>> {
92 self.__unsafe_private_named.0 = ::core::option::Option::Some(value.into());
93 GetActorMetadataBuilder {
94 _phantom_state: ::core::marker::PhantomData,
95 __unsafe_private_named: self.__unsafe_private_named,
96 _phantom: ::core::marker::PhantomData,
97 }
98 }
99}
100
101impl<'a, S> GetActorMetadataBuilder<'a, S>
102where
103 S: get_actor_metadata_state::State,
104 S::Actor: get_actor_metadata_state::IsSet,
105{
106 /// Build the final struct
107 pub fn build(self) -> GetActorMetadata<'a> {
108 GetActorMetadata {
109 actor: self.__unsafe_private_named.0.unwrap(),
110 }
111 }
112}
113
114#[jacquard_derive::lexicon]
115#[derive(
116 serde::Serialize,
117 serde::Deserialize,
118 Debug,
119 Clone,
120 PartialEq,
121 Eq,
122 jacquard_derive::IntoStatic
123)]
124#[serde(rename_all = "camelCase")]
125pub struct GetActorMetadataOutput<'a> {
126 #[serde(borrow)]
127 pub all: crate::chat_bsky::moderation::get_actor_metadata::Metadata<'a>,
128 #[serde(borrow)]
129 pub day: crate::chat_bsky::moderation::get_actor_metadata::Metadata<'a>,
130 #[serde(borrow)]
131 pub month: crate::chat_bsky::moderation::get_actor_metadata::Metadata<'a>,
132}
133
134/// Response type for
135///chat.bsky.moderation.getActorMetadata
136pub struct GetActorMetadataResponse;
137impl jacquard_common::xrpc::XrpcResp for GetActorMetadataResponse {
138 const NSID: &'static str = "chat.bsky.moderation.getActorMetadata";
139 const ENCODING: &'static str = "application/json";
140 type Output<'de> = GetActorMetadataOutput<'de>;
141 type Err<'de> = jacquard_common::xrpc::GenericError<'de>;
142}
143
144impl<'a> jacquard_common::xrpc::XrpcRequest for GetActorMetadata<'a> {
145 const NSID: &'static str = "chat.bsky.moderation.getActorMetadata";
146 const METHOD: jacquard_common::xrpc::XrpcMethod = jacquard_common::xrpc::XrpcMethod::Query;
147 type Response = GetActorMetadataResponse;
148}
149
150/// Endpoint type for
151///chat.bsky.moderation.getActorMetadata
152pub struct GetActorMetadataRequest;
153impl jacquard_common::xrpc::XrpcEndpoint for GetActorMetadataRequest {
154 const PATH: &'static str = "/xrpc/chat.bsky.moderation.getActorMetadata";
155 const METHOD: jacquard_common::xrpc::XrpcMethod = jacquard_common::xrpc::XrpcMethod::Query;
156 type Request<'de> = GetActorMetadata<'de>;
157 type Response = GetActorMetadataResponse;
158}
159
160#[jacquard_derive::lexicon]
161#[derive(
162 serde::Serialize,
163 serde::Deserialize,
164 Debug,
165 Clone,
166 PartialEq,
167 Eq,
168 jacquard_derive::IntoStatic
169)]
170#[serde(rename_all = "camelCase")]
171pub struct Metadata<'a> {
172 pub convos: i64,
173 pub convos_started: i64,
174 pub messages_received: i64,
175 pub messages_sent: i64,
176}
177
178pub mod metadata_state {
179
180 pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
181 #[allow(unused)]
182 use ::core::marker::PhantomData;
183 mod sealed {
184 pub trait Sealed {}
185 }
186 /// State trait tracking which required fields have been set
187 pub trait State: sealed::Sealed {
188 type Convos;
189 type ConvosStarted;
190 type MessagesReceived;
191 type MessagesSent;
192 }
193 /// Empty state - all required fields are unset
194 pub struct Empty(());
195 impl sealed::Sealed for Empty {}
196 impl State for Empty {
197 type Convos = Unset;
198 type ConvosStarted = Unset;
199 type MessagesReceived = Unset;
200 type MessagesSent = Unset;
201 }
202 ///State transition - sets the `convos` field to Set
203 pub struct SetConvos<S: State = Empty>(PhantomData<fn() -> S>);
204 impl<S: State> sealed::Sealed for SetConvos<S> {}
205 impl<S: State> State for SetConvos<S> {
206 type Convos = Set<members::convos>;
207 type ConvosStarted = S::ConvosStarted;
208 type MessagesReceived = S::MessagesReceived;
209 type MessagesSent = S::MessagesSent;
210 }
211 ///State transition - sets the `convos_started` field to Set
212 pub struct SetConvosStarted<S: State = Empty>(PhantomData<fn() -> S>);
213 impl<S: State> sealed::Sealed for SetConvosStarted<S> {}
214 impl<S: State> State for SetConvosStarted<S> {
215 type Convos = S::Convos;
216 type ConvosStarted = Set<members::convos_started>;
217 type MessagesReceived = S::MessagesReceived;
218 type MessagesSent = S::MessagesSent;
219 }
220 ///State transition - sets the `messages_received` field to Set
221 pub struct SetMessagesReceived<S: State = Empty>(PhantomData<fn() -> S>);
222 impl<S: State> sealed::Sealed for SetMessagesReceived<S> {}
223 impl<S: State> State for SetMessagesReceived<S> {
224 type Convos = S::Convos;
225 type ConvosStarted = S::ConvosStarted;
226 type MessagesReceived = Set<members::messages_received>;
227 type MessagesSent = S::MessagesSent;
228 }
229 ///State transition - sets the `messages_sent` field to Set
230 pub struct SetMessagesSent<S: State = Empty>(PhantomData<fn() -> S>);
231 impl<S: State> sealed::Sealed for SetMessagesSent<S> {}
232 impl<S: State> State for SetMessagesSent<S> {
233 type Convos = S::Convos;
234 type ConvosStarted = S::ConvosStarted;
235 type MessagesReceived = S::MessagesReceived;
236 type MessagesSent = Set<members::messages_sent>;
237 }
238 /// Marker types for field names
239 #[allow(non_camel_case_types)]
240 pub mod members {
241 ///Marker type for the `convos` field
242 pub struct convos(());
243 ///Marker type for the `convos_started` field
244 pub struct convos_started(());
245 ///Marker type for the `messages_received` field
246 pub struct messages_received(());
247 ///Marker type for the `messages_sent` field
248 pub struct messages_sent(());
249 }
250}
251
252/// Builder for constructing an instance of this type
253pub struct MetadataBuilder<'a, S: metadata_state::State> {
254 _phantom_state: ::core::marker::PhantomData<fn() -> S>,
255 __unsafe_private_named: (
256 ::core::option::Option<i64>,
257 ::core::option::Option<i64>,
258 ::core::option::Option<i64>,
259 ::core::option::Option<i64>,
260 ),
261 _phantom: ::core::marker::PhantomData<&'a ()>,
262}
263
264impl<'a> Metadata<'a> {
265 /// Create a new builder for this type
266 pub fn new() -> MetadataBuilder<'a, metadata_state::Empty> {
267 MetadataBuilder::new()
268 }
269}
270
271impl<'a> MetadataBuilder<'a, metadata_state::Empty> {
272 /// Create a new builder with all fields unset
273 pub fn new() -> Self {
274 MetadataBuilder {
275 _phantom_state: ::core::marker::PhantomData,
276 __unsafe_private_named: (None, None, None, None),
277 _phantom: ::core::marker::PhantomData,
278 }
279 }
280}
281
282impl<'a, S> MetadataBuilder<'a, S>
283where
284 S: metadata_state::State,
285 S::Convos: metadata_state::IsUnset,
286{
287 /// Set the `convos` field (required)
288 pub fn convos(
289 mut self,
290 value: impl Into<i64>,
291 ) -> MetadataBuilder<'a, metadata_state::SetConvos<S>> {
292 self.__unsafe_private_named.0 = ::core::option::Option::Some(value.into());
293 MetadataBuilder {
294 _phantom_state: ::core::marker::PhantomData,
295 __unsafe_private_named: self.__unsafe_private_named,
296 _phantom: ::core::marker::PhantomData,
297 }
298 }
299}
300
301impl<'a, S> MetadataBuilder<'a, S>
302where
303 S: metadata_state::State,
304 S::ConvosStarted: metadata_state::IsUnset,
305{
306 /// Set the `convosStarted` field (required)
307 pub fn convos_started(
308 mut self,
309 value: impl Into<i64>,
310 ) -> MetadataBuilder<'a, metadata_state::SetConvosStarted<S>> {
311 self.__unsafe_private_named.1 = ::core::option::Option::Some(value.into());
312 MetadataBuilder {
313 _phantom_state: ::core::marker::PhantomData,
314 __unsafe_private_named: self.__unsafe_private_named,
315 _phantom: ::core::marker::PhantomData,
316 }
317 }
318}
319
320impl<'a, S> MetadataBuilder<'a, S>
321where
322 S: metadata_state::State,
323 S::MessagesReceived: metadata_state::IsUnset,
324{
325 /// Set the `messagesReceived` field (required)
326 pub fn messages_received(
327 mut self,
328 value: impl Into<i64>,
329 ) -> MetadataBuilder<'a, metadata_state::SetMessagesReceived<S>> {
330 self.__unsafe_private_named.2 = ::core::option::Option::Some(value.into());
331 MetadataBuilder {
332 _phantom_state: ::core::marker::PhantomData,
333 __unsafe_private_named: self.__unsafe_private_named,
334 _phantom: ::core::marker::PhantomData,
335 }
336 }
337}
338
339impl<'a, S> MetadataBuilder<'a, S>
340where
341 S: metadata_state::State,
342 S::MessagesSent: metadata_state::IsUnset,
343{
344 /// Set the `messagesSent` field (required)
345 pub fn messages_sent(
346 mut self,
347 value: impl Into<i64>,
348 ) -> MetadataBuilder<'a, metadata_state::SetMessagesSent<S>> {
349 self.__unsafe_private_named.3 = ::core::option::Option::Some(value.into());
350 MetadataBuilder {
351 _phantom_state: ::core::marker::PhantomData,
352 __unsafe_private_named: self.__unsafe_private_named,
353 _phantom: ::core::marker::PhantomData,
354 }
355 }
356}
357
358impl<'a, S> MetadataBuilder<'a, S>
359where
360 S: metadata_state::State,
361 S::Convos: metadata_state::IsSet,
362 S::ConvosStarted: metadata_state::IsSet,
363 S::MessagesReceived: metadata_state::IsSet,
364 S::MessagesSent: metadata_state::IsSet,
365{
366 /// Build the final struct
367 pub fn build(self) -> Metadata<'a> {
368 Metadata {
369 convos: self.__unsafe_private_named.0.unwrap(),
370 convos_started: self.__unsafe_private_named.1.unwrap(),
371 messages_received: self.__unsafe_private_named.2.unwrap(),
372 messages_sent: self.__unsafe_private_named.3.unwrap(),
373 extra_data: Default::default(),
374 }
375 }
376 /// Build the final struct with custom extra_data
377 pub fn build_with_data(
378 self,
379 extra_data: std::collections::BTreeMap<
380 jacquard_common::smol_str::SmolStr,
381 jacquard_common::types::value::Data<'a>,
382 >,
383 ) -> Metadata<'a> {
384 Metadata {
385 convos: self.__unsafe_private_named.0.unwrap(),
386 convos_started: self.__unsafe_private_named.1.unwrap(),
387 messages_received: self.__unsafe_private_named.2.unwrap(),
388 messages_sent: self.__unsafe_private_named.3.unwrap(),
389 extra_data: Some(extra_data),
390 }
391 }
392}
393
394fn lexicon_doc_chat_bsky_moderation_getActorMetadata() -> ::jacquard_lexicon::lexicon::LexiconDoc<
395 'static,
396> {
397 ::jacquard_lexicon::lexicon::LexiconDoc {
398 lexicon: ::jacquard_lexicon::lexicon::Lexicon::Lexicon1,
399 id: ::jacquard_common::CowStr::new_static(
400 "chat.bsky.moderation.getActorMetadata",
401 ),
402 revision: None,
403 description: None,
404 defs: {
405 let mut map = ::alloc::collections::BTreeMap::new();
406 map.insert(
407 ::jacquard_common::smol_str::SmolStr::new_static("main"),
408 ::jacquard_lexicon::lexicon::LexUserType::XrpcQuery(::jacquard_lexicon::lexicon::LexXrpcQuery {
409 description: None,
410 parameters: Some(
411 ::jacquard_lexicon::lexicon::LexXrpcQueryParameter::Params(::jacquard_lexicon::lexicon::LexXrpcParameters {
412 description: None,
413 required: Some(
414 vec![
415 ::jacquard_common::smol_str::SmolStr::new_static("actor")
416 ],
417 ),
418 properties: {
419 #[allow(unused_mut)]
420 let mut map = ::alloc::collections::BTreeMap::new();
421 map.insert(
422 ::jacquard_common::smol_str::SmolStr::new_static("actor"),
423 ::jacquard_lexicon::lexicon::LexXrpcParametersProperty::String(::jacquard_lexicon::lexicon::LexString {
424 description: None,
425 format: Some(
426 ::jacquard_lexicon::lexicon::LexStringFormat::Did,
427 ),
428 default: None,
429 min_length: None,
430 max_length: None,
431 min_graphemes: None,
432 max_graphemes: None,
433 r#enum: None,
434 r#const: None,
435 known_values: None,
436 }),
437 );
438 map
439 },
440 }),
441 ),
442 output: None,
443 errors: None,
444 }),
445 );
446 map.insert(
447 ::jacquard_common::smol_str::SmolStr::new_static("metadata"),
448 ::jacquard_lexicon::lexicon::LexUserType::Object(::jacquard_lexicon::lexicon::LexObject {
449 description: None,
450 required: Some(
451 vec![
452 ::jacquard_common::smol_str::SmolStr::new_static("messagesSent"),
453 ::jacquard_common::smol_str::SmolStr::new_static("messagesReceived"),
454 ::jacquard_common::smol_str::SmolStr::new_static("convos"),
455 ::jacquard_common::smol_str::SmolStr::new_static("convosStarted")
456 ],
457 ),
458 nullable: None,
459 properties: {
460 #[allow(unused_mut)]
461 let mut map = ::alloc::collections::BTreeMap::new();
462 map.insert(
463 ::jacquard_common::smol_str::SmolStr::new_static("convos"),
464 ::jacquard_lexicon::lexicon::LexObjectProperty::Integer(::jacquard_lexicon::lexicon::LexInteger {
465 description: None,
466 default: None,
467 minimum: None,
468 maximum: None,
469 r#enum: None,
470 r#const: None,
471 }),
472 );
473 map.insert(
474 ::jacquard_common::smol_str::SmolStr::new_static(
475 "convosStarted",
476 ),
477 ::jacquard_lexicon::lexicon::LexObjectProperty::Integer(::jacquard_lexicon::lexicon::LexInteger {
478 description: None,
479 default: None,
480 minimum: None,
481 maximum: None,
482 r#enum: None,
483 r#const: None,
484 }),
485 );
486 map.insert(
487 ::jacquard_common::smol_str::SmolStr::new_static(
488 "messagesReceived",
489 ),
490 ::jacquard_lexicon::lexicon::LexObjectProperty::Integer(::jacquard_lexicon::lexicon::LexInteger {
491 description: None,
492 default: None,
493 minimum: None,
494 maximum: None,
495 r#enum: None,
496 r#const: None,
497 }),
498 );
499 map.insert(
500 ::jacquard_common::smol_str::SmolStr::new_static(
501 "messagesSent",
502 ),
503 ::jacquard_lexicon::lexicon::LexObjectProperty::Integer(::jacquard_lexicon::lexicon::LexInteger {
504 description: None,
505 default: None,
506 minimum: None,
507 maximum: None,
508 r#enum: None,
509 r#const: None,
510 }),
511 );
512 map
513 },
514 }),
515 );
516 map
517 },
518 }
519}
520
521impl<'a> ::jacquard_lexicon::schema::LexiconSchema for Metadata<'a> {
522 fn nsid() -> &'static str {
523 "chat.bsky.moderation.getActorMetadata"
524 }
525 fn def_name() -> &'static str {
526 "metadata"
527 }
528 fn lexicon_doc() -> ::jacquard_lexicon::lexicon::LexiconDoc<'static> {
529 lexicon_doc_chat_bsky_moderation_getActorMetadata()
530 }
531 fn validate(
532 &self,
533 ) -> ::core::result::Result<(), ::jacquard_lexicon::validation::ConstraintError> {
534 Ok(())
535 }
536}