A better Rust ATProto crate
at main 5.5 kB view raw
1// @generated by jacquard-lexicon. DO NOT EDIT. 2// 3// Lexicon: com.atproto.temp.checkHandleAvailability 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 bon::Builder, 16 jacquard_derive::IntoStatic 17)] 18#[builder(start_fn = new)] 19#[serde(rename_all = "camelCase")] 20pub struct CheckHandleAvailability<'a> { 21 #[serde(skip_serializing_if = "std::option::Option::is_none")] 22 pub birth_date: std::option::Option<jacquard_common::types::string::Datetime>, 23 #[serde(skip_serializing_if = "std::option::Option::is_none")] 24 #[serde(borrow)] 25 #[builder(into)] 26 pub email: std::option::Option<jacquard_common::CowStr<'a>>, 27 #[serde(borrow)] 28 pub handle: jacquard_common::types::string::Handle<'a>, 29} 30 31#[jacquard_derive::lexicon] 32#[derive( 33 serde::Serialize, 34 serde::Deserialize, 35 Debug, 36 Clone, 37 PartialEq, 38 Eq, 39 jacquard_derive::IntoStatic 40)] 41#[serde(rename_all = "camelCase")] 42pub struct CheckHandleAvailabilityOutput<'a> { 43 /// Echo of the input handle. 44 #[serde(borrow)] 45 pub handle: jacquard_common::types::string::Handle<'a>, 46 #[serde(borrow)] 47 pub result: CheckHandleAvailabilityOutputResult<'a>, 48} 49 50#[jacquard_derive::open_union] 51#[derive( 52 serde::Serialize, 53 serde::Deserialize, 54 Debug, 55 Clone, 56 PartialEq, 57 Eq, 58 jacquard_derive::IntoStatic 59)] 60#[serde(tag = "$type")] 61#[serde(bound(deserialize = "'de: 'a"))] 62pub enum CheckHandleAvailabilityOutputResult<'a> { 63 #[serde(rename = "com.atproto.temp.checkHandleAvailability#resultAvailable")] 64 ResultAvailable( 65 Box<crate::com_atproto::temp::check_handle_availability::ResultAvailable<'a>>, 66 ), 67 #[serde(rename = "com.atproto.temp.checkHandleAvailability#resultUnavailable")] 68 ResultUnavailable( 69 Box<crate::com_atproto::temp::check_handle_availability::ResultUnavailable<'a>>, 70 ), 71} 72 73#[jacquard_derive::open_union] 74#[derive( 75 serde::Serialize, 76 serde::Deserialize, 77 Debug, 78 Clone, 79 PartialEq, 80 Eq, 81 thiserror::Error, 82 miette::Diagnostic, 83 jacquard_derive::IntoStatic 84)] 85#[serde(tag = "error", content = "message")] 86#[serde(bound(deserialize = "'de: 'a"))] 87pub enum CheckHandleAvailabilityError<'a> { 88 /// An invalid email was provided. 89 #[serde(rename = "InvalidEmail")] 90 InvalidEmail(std::option::Option<String>), 91} 92 93impl std::fmt::Display for CheckHandleAvailabilityError<'_> { 94 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 95 match self { 96 Self::InvalidEmail(msg) => { 97 write!(f, "InvalidEmail")?; 98 if let Some(msg) = msg { 99 write!(f, ": {}", msg)?; 100 } 101 Ok(()) 102 } 103 Self::Unknown(err) => write!(f, "Unknown error: {:?}", err), 104 } 105 } 106} 107 108///Response type for 109///com.atproto.temp.checkHandleAvailability 110pub struct CheckHandleAvailabilityResponse; 111impl jacquard_common::xrpc::XrpcResp for CheckHandleAvailabilityResponse { 112 const NSID: &'static str = "com.atproto.temp.checkHandleAvailability"; 113 const ENCODING: &'static str = "application/json"; 114 type Output<'de> = CheckHandleAvailabilityOutput<'de>; 115 type Err<'de> = CheckHandleAvailabilityError<'de>; 116} 117 118impl<'a> jacquard_common::xrpc::XrpcRequest for CheckHandleAvailability<'a> { 119 const NSID: &'static str = "com.atproto.temp.checkHandleAvailability"; 120 const METHOD: jacquard_common::xrpc::XrpcMethod = jacquard_common::xrpc::XrpcMethod::Query; 121 type Response = CheckHandleAvailabilityResponse; 122} 123 124///Endpoint type for 125///com.atproto.temp.checkHandleAvailability 126pub struct CheckHandleAvailabilityRequest; 127impl jacquard_common::xrpc::XrpcEndpoint for CheckHandleAvailabilityRequest { 128 const PATH: &'static str = "/xrpc/com.atproto.temp.checkHandleAvailability"; 129 const METHOD: jacquard_common::xrpc::XrpcMethod = jacquard_common::xrpc::XrpcMethod::Query; 130 type Request<'de> = CheckHandleAvailability<'de>; 131 type Response = CheckHandleAvailabilityResponse; 132} 133 134/// Indicates the provided handle is available. 135#[jacquard_derive::lexicon] 136#[derive( 137 serde::Serialize, 138 serde::Deserialize, 139 Debug, 140 Clone, 141 PartialEq, 142 Eq, 143 jacquard_derive::IntoStatic, 144 Default 145)] 146#[serde(rename_all = "camelCase")] 147pub struct ResultAvailable<'a> {} 148/// Indicates the provided handle is unavailable and gives suggestions of available handles. 149#[jacquard_derive::lexicon] 150#[derive( 151 serde::Serialize, 152 serde::Deserialize, 153 Debug, 154 Clone, 155 PartialEq, 156 Eq, 157 jacquard_derive::IntoStatic, 158 bon::Builder 159)] 160#[serde(rename_all = "camelCase")] 161pub struct ResultUnavailable<'a> { 162 /// List of suggested handles based on the provided inputs. 163 #[serde(borrow)] 164 pub suggestions: Vec< 165 crate::com_atproto::temp::check_handle_availability::Suggestion<'a>, 166 >, 167} 168 169#[jacquard_derive::lexicon] 170#[derive( 171 serde::Serialize, 172 serde::Deserialize, 173 Debug, 174 Clone, 175 PartialEq, 176 Eq, 177 jacquard_derive::IntoStatic, 178 bon::Builder 179)] 180#[serde(rename_all = "camelCase")] 181pub struct Suggestion<'a> { 182 #[serde(borrow)] 183 pub handle: jacquard_common::types::string::Handle<'a>, 184 /// Method used to build this suggestion. Should be considered opaque to clients. Can be used for metrics. 185 #[serde(borrow)] 186 #[builder(into)] 187 pub method: jacquard_common::CowStr<'a>, 188}