atproto blogging
at main 536 lines 20 kB view raw
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}