// @generated by jacquard-lexicon. DO NOT EDIT. // // Lexicon: chat.bsky.moderation.getActorMetadata // // This file was automatically generated from Lexicon schemas. // Any manual changes will be overwritten on the next regeneration. #[derive( serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq, jacquard_derive::IntoStatic )] #[serde(rename_all = "camelCase")] pub struct GetActorMetadata<'a> { #[serde(borrow)] pub actor: jacquard_common::types::string::Did<'a>, } pub mod get_actor_metadata_state { pub use crate::builder_types::{Set, Unset, IsSet, IsUnset}; #[allow(unused)] use ::core::marker::PhantomData; mod sealed { pub trait Sealed {} } /// State trait tracking which required fields have been set pub trait State: sealed::Sealed { type Actor; } /// Empty state - all required fields are unset pub struct Empty(()); impl sealed::Sealed for Empty {} impl State for Empty { type Actor = Unset; } ///State transition - sets the `actor` field to Set pub struct SetActor(PhantomData S>); impl sealed::Sealed for SetActor {} impl State for SetActor { type Actor = Set; } /// Marker types for field names #[allow(non_camel_case_types)] pub mod members { ///Marker type for the `actor` field pub struct actor(()); } } /// Builder for constructing an instance of this type pub struct GetActorMetadataBuilder<'a, S: get_actor_metadata_state::State> { _phantom_state: ::core::marker::PhantomData S>, __unsafe_private_named: ( ::core::option::Option>, ), _phantom: ::core::marker::PhantomData<&'a ()>, } impl<'a> GetActorMetadata<'a> { /// Create a new builder for this type pub fn new() -> GetActorMetadataBuilder<'a, get_actor_metadata_state::Empty> { GetActorMetadataBuilder::new() } } impl<'a> GetActorMetadataBuilder<'a, get_actor_metadata_state::Empty> { /// Create a new builder with all fields unset pub fn new() -> Self { GetActorMetadataBuilder { _phantom_state: ::core::marker::PhantomData, __unsafe_private_named: (None,), _phantom: ::core::marker::PhantomData, } } } impl<'a, S> GetActorMetadataBuilder<'a, S> where S: get_actor_metadata_state::State, S::Actor: get_actor_metadata_state::IsUnset, { /// Set the `actor` field (required) pub fn actor( mut self, value: impl Into>, ) -> GetActorMetadataBuilder<'a, get_actor_metadata_state::SetActor> { self.__unsafe_private_named.0 = ::core::option::Option::Some(value.into()); GetActorMetadataBuilder { _phantom_state: ::core::marker::PhantomData, __unsafe_private_named: self.__unsafe_private_named, _phantom: ::core::marker::PhantomData, } } } impl<'a, S> GetActorMetadataBuilder<'a, S> where S: get_actor_metadata_state::State, S::Actor: get_actor_metadata_state::IsSet, { /// Build the final struct pub fn build(self) -> GetActorMetadata<'a> { GetActorMetadata { actor: self.__unsafe_private_named.0.unwrap(), } } } #[jacquard_derive::lexicon] #[derive( serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq, jacquard_derive::IntoStatic )] #[serde(rename_all = "camelCase")] pub struct GetActorMetadataOutput<'a> { #[serde(borrow)] pub all: crate::chat_bsky::moderation::get_actor_metadata::Metadata<'a>, #[serde(borrow)] pub day: crate::chat_bsky::moderation::get_actor_metadata::Metadata<'a>, #[serde(borrow)] pub month: crate::chat_bsky::moderation::get_actor_metadata::Metadata<'a>, } /// Response type for ///chat.bsky.moderation.getActorMetadata pub struct GetActorMetadataResponse; impl jacquard_common::xrpc::XrpcResp for GetActorMetadataResponse { const NSID: &'static str = "chat.bsky.moderation.getActorMetadata"; const ENCODING: &'static str = "application/json"; type Output<'de> = GetActorMetadataOutput<'de>; type Err<'de> = jacquard_common::xrpc::GenericError<'de>; } impl<'a> jacquard_common::xrpc::XrpcRequest for GetActorMetadata<'a> { const NSID: &'static str = "chat.bsky.moderation.getActorMetadata"; const METHOD: jacquard_common::xrpc::XrpcMethod = jacquard_common::xrpc::XrpcMethod::Query; type Response = GetActorMetadataResponse; } /// Endpoint type for ///chat.bsky.moderation.getActorMetadata pub struct GetActorMetadataRequest; impl jacquard_common::xrpc::XrpcEndpoint for GetActorMetadataRequest { const PATH: &'static str = "/xrpc/chat.bsky.moderation.getActorMetadata"; const METHOD: jacquard_common::xrpc::XrpcMethod = jacquard_common::xrpc::XrpcMethod::Query; type Request<'de> = GetActorMetadata<'de>; type Response = GetActorMetadataResponse; } #[jacquard_derive::lexicon] #[derive( serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq, jacquard_derive::IntoStatic )] #[serde(rename_all = "camelCase")] pub struct Metadata<'a> { pub convos: i64, pub convos_started: i64, pub messages_received: i64, pub messages_sent: i64, } pub mod metadata_state { pub use crate::builder_types::{Set, Unset, IsSet, IsUnset}; #[allow(unused)] use ::core::marker::PhantomData; mod sealed { pub trait Sealed {} } /// State trait tracking which required fields have been set pub trait State: sealed::Sealed { type Convos; type ConvosStarted; type MessagesReceived; type MessagesSent; } /// Empty state - all required fields are unset pub struct Empty(()); impl sealed::Sealed for Empty {} impl State for Empty { type Convos = Unset; type ConvosStarted = Unset; type MessagesReceived = Unset; type MessagesSent = Unset; } ///State transition - sets the `convos` field to Set pub struct SetConvos(PhantomData S>); impl sealed::Sealed for SetConvos {} impl State for SetConvos { type Convos = Set; type ConvosStarted = S::ConvosStarted; type MessagesReceived = S::MessagesReceived; type MessagesSent = S::MessagesSent; } ///State transition - sets the `convos_started` field to Set pub struct SetConvosStarted(PhantomData S>); impl sealed::Sealed for SetConvosStarted {} impl State for SetConvosStarted { type Convos = S::Convos; type ConvosStarted = Set; type MessagesReceived = S::MessagesReceived; type MessagesSent = S::MessagesSent; } ///State transition - sets the `messages_received` field to Set pub struct SetMessagesReceived(PhantomData S>); impl sealed::Sealed for SetMessagesReceived {} impl State for SetMessagesReceived { type Convos = S::Convos; type ConvosStarted = S::ConvosStarted; type MessagesReceived = Set; type MessagesSent = S::MessagesSent; } ///State transition - sets the `messages_sent` field to Set pub struct SetMessagesSent(PhantomData S>); impl sealed::Sealed for SetMessagesSent {} impl State for SetMessagesSent { type Convos = S::Convos; type ConvosStarted = S::ConvosStarted; type MessagesReceived = S::MessagesReceived; type MessagesSent = Set; } /// Marker types for field names #[allow(non_camel_case_types)] pub mod members { ///Marker type for the `convos` field pub struct convos(()); ///Marker type for the `convos_started` field pub struct convos_started(()); ///Marker type for the `messages_received` field pub struct messages_received(()); ///Marker type for the `messages_sent` field pub struct messages_sent(()); } } /// Builder for constructing an instance of this type pub struct MetadataBuilder<'a, S: metadata_state::State> { _phantom_state: ::core::marker::PhantomData S>, __unsafe_private_named: ( ::core::option::Option, ::core::option::Option, ::core::option::Option, ::core::option::Option, ), _phantom: ::core::marker::PhantomData<&'a ()>, } impl<'a> Metadata<'a> { /// Create a new builder for this type pub fn new() -> MetadataBuilder<'a, metadata_state::Empty> { MetadataBuilder::new() } } impl<'a> MetadataBuilder<'a, metadata_state::Empty> { /// Create a new builder with all fields unset pub fn new() -> Self { MetadataBuilder { _phantom_state: ::core::marker::PhantomData, __unsafe_private_named: (None, None, None, None), _phantom: ::core::marker::PhantomData, } } } impl<'a, S> MetadataBuilder<'a, S> where S: metadata_state::State, S::Convos: metadata_state::IsUnset, { /// Set the `convos` field (required) pub fn convos( mut self, value: impl Into, ) -> MetadataBuilder<'a, metadata_state::SetConvos> { self.__unsafe_private_named.0 = ::core::option::Option::Some(value.into()); MetadataBuilder { _phantom_state: ::core::marker::PhantomData, __unsafe_private_named: self.__unsafe_private_named, _phantom: ::core::marker::PhantomData, } } } impl<'a, S> MetadataBuilder<'a, S> where S: metadata_state::State, S::ConvosStarted: metadata_state::IsUnset, { /// Set the `convosStarted` field (required) pub fn convos_started( mut self, value: impl Into, ) -> MetadataBuilder<'a, metadata_state::SetConvosStarted> { self.__unsafe_private_named.1 = ::core::option::Option::Some(value.into()); MetadataBuilder { _phantom_state: ::core::marker::PhantomData, __unsafe_private_named: self.__unsafe_private_named, _phantom: ::core::marker::PhantomData, } } } impl<'a, S> MetadataBuilder<'a, S> where S: metadata_state::State, S::MessagesReceived: metadata_state::IsUnset, { /// Set the `messagesReceived` field (required) pub fn messages_received( mut self, value: impl Into, ) -> MetadataBuilder<'a, metadata_state::SetMessagesReceived> { self.__unsafe_private_named.2 = ::core::option::Option::Some(value.into()); MetadataBuilder { _phantom_state: ::core::marker::PhantomData, __unsafe_private_named: self.__unsafe_private_named, _phantom: ::core::marker::PhantomData, } } } impl<'a, S> MetadataBuilder<'a, S> where S: metadata_state::State, S::MessagesSent: metadata_state::IsUnset, { /// Set the `messagesSent` field (required) pub fn messages_sent( mut self, value: impl Into, ) -> MetadataBuilder<'a, metadata_state::SetMessagesSent> { self.__unsafe_private_named.3 = ::core::option::Option::Some(value.into()); MetadataBuilder { _phantom_state: ::core::marker::PhantomData, __unsafe_private_named: self.__unsafe_private_named, _phantom: ::core::marker::PhantomData, } } } impl<'a, S> MetadataBuilder<'a, S> where S: metadata_state::State, S::Convos: metadata_state::IsSet, S::ConvosStarted: metadata_state::IsSet, S::MessagesReceived: metadata_state::IsSet, S::MessagesSent: metadata_state::IsSet, { /// Build the final struct pub fn build(self) -> Metadata<'a> { Metadata { convos: self.__unsafe_private_named.0.unwrap(), convos_started: self.__unsafe_private_named.1.unwrap(), messages_received: self.__unsafe_private_named.2.unwrap(), messages_sent: self.__unsafe_private_named.3.unwrap(), extra_data: Default::default(), } } /// Build the final struct with custom extra_data pub fn build_with_data( self, extra_data: std::collections::BTreeMap< jacquard_common::smol_str::SmolStr, jacquard_common::types::value::Data<'a>, >, ) -> Metadata<'a> { Metadata { convos: self.__unsafe_private_named.0.unwrap(), convos_started: self.__unsafe_private_named.1.unwrap(), messages_received: self.__unsafe_private_named.2.unwrap(), messages_sent: self.__unsafe_private_named.3.unwrap(), extra_data: Some(extra_data), } } } fn lexicon_doc_chat_bsky_moderation_getActorMetadata() -> ::jacquard_lexicon::lexicon::LexiconDoc< 'static, > { ::jacquard_lexicon::lexicon::LexiconDoc { lexicon: ::jacquard_lexicon::lexicon::Lexicon::Lexicon1, id: ::jacquard_common::CowStr::new_static( "chat.bsky.moderation.getActorMetadata", ), revision: None, description: None, defs: { let mut map = ::alloc::collections::BTreeMap::new(); map.insert( ::jacquard_common::smol_str::SmolStr::new_static("main"), ::jacquard_lexicon::lexicon::LexUserType::XrpcQuery(::jacquard_lexicon::lexicon::LexXrpcQuery { description: None, parameters: Some( ::jacquard_lexicon::lexicon::LexXrpcQueryParameter::Params(::jacquard_lexicon::lexicon::LexXrpcParameters { description: None, required: Some( vec![ ::jacquard_common::smol_str::SmolStr::new_static("actor") ], ), properties: { #[allow(unused_mut)] let mut map = ::alloc::collections::BTreeMap::new(); map.insert( ::jacquard_common::smol_str::SmolStr::new_static("actor"), ::jacquard_lexicon::lexicon::LexXrpcParametersProperty::String(::jacquard_lexicon::lexicon::LexString { description: None, format: Some( ::jacquard_lexicon::lexicon::LexStringFormat::Did, ), default: None, min_length: None, max_length: None, min_graphemes: None, max_graphemes: None, r#enum: None, r#const: None, known_values: None, }), ); map }, }), ), output: None, errors: None, }), ); map.insert( ::jacquard_common::smol_str::SmolStr::new_static("metadata"), ::jacquard_lexicon::lexicon::LexUserType::Object(::jacquard_lexicon::lexicon::LexObject { description: None, required: Some( vec![ ::jacquard_common::smol_str::SmolStr::new_static("messagesSent"), ::jacquard_common::smol_str::SmolStr::new_static("messagesReceived"), ::jacquard_common::smol_str::SmolStr::new_static("convos"), ::jacquard_common::smol_str::SmolStr::new_static("convosStarted") ], ), nullable: None, properties: { #[allow(unused_mut)] let mut map = ::alloc::collections::BTreeMap::new(); map.insert( ::jacquard_common::smol_str::SmolStr::new_static("convos"), ::jacquard_lexicon::lexicon::LexObjectProperty::Integer(::jacquard_lexicon::lexicon::LexInteger { description: None, default: None, minimum: None, maximum: None, r#enum: None, r#const: None, }), ); map.insert( ::jacquard_common::smol_str::SmolStr::new_static( "convosStarted", ), ::jacquard_lexicon::lexicon::LexObjectProperty::Integer(::jacquard_lexicon::lexicon::LexInteger { description: None, default: None, minimum: None, maximum: None, r#enum: None, r#const: None, }), ); map.insert( ::jacquard_common::smol_str::SmolStr::new_static( "messagesReceived", ), ::jacquard_lexicon::lexicon::LexObjectProperty::Integer(::jacquard_lexicon::lexicon::LexInteger { description: None, default: None, minimum: None, maximum: None, r#enum: None, r#const: None, }), ); map.insert( ::jacquard_common::smol_str::SmolStr::new_static( "messagesSent", ), ::jacquard_lexicon::lexicon::LexObjectProperty::Integer(::jacquard_lexicon::lexicon::LexInteger { description: None, default: None, minimum: None, maximum: None, r#enum: None, r#const: None, }), ); map }, }), ); map }, } } impl<'a> ::jacquard_lexicon::schema::LexiconSchema for Metadata<'a> { fn nsid() -> &'static str { "chat.bsky.moderation.getActorMetadata" } fn def_name() -> &'static str { "metadata" } fn lexicon_doc() -> ::jacquard_lexicon::lexicon::LexiconDoc<'static> { lexicon_doc_chat_bsky_moderation_getActorMetadata() } fn validate( &self, ) -> ::core::result::Result<(), ::jacquard_lexicon::validation::ConstraintError> { Ok(()) } }