A better Rust ATProto crate
at lifetimes 5.6 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: CheckHandleAvailabilityOutputRecordResult<'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 CheckHandleAvailabilityOutputRecordResult<'a> {} 63#[jacquard_derive::open_union] 64#[derive( 65 serde::Serialize, 66 serde::Deserialize, 67 Debug, 68 Clone, 69 PartialEq, 70 Eq, 71 thiserror::Error, 72 miette::Diagnostic 73)] 74#[serde(tag = "error", content = "message")] 75#[serde(bound(deserialize = "'de: 'a"))] 76pub enum CheckHandleAvailabilityError<'a> { 77 ///An invalid email was provided. 78 #[serde(rename = "InvalidEmail")] 79 InvalidEmail(std::option::Option<String>), 80} 81 82impl std::fmt::Display for CheckHandleAvailabilityError<'_> { 83 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 84 match self { 85 Self::InvalidEmail(msg) => { 86 write!(f, "InvalidEmail")?; 87 if let Some(msg) = msg { 88 write!(f, ": {}", msg)?; 89 } 90 Ok(()) 91 } 92 Self::Unknown(err) => write!(f, "Unknown error: {:?}", err), 93 } 94 } 95} 96 97impl jacquard_common::IntoStatic for CheckHandleAvailabilityError<'_> { 98 type Output = CheckHandleAvailabilityError<'static>; 99 fn into_static(self) -> Self::Output { 100 match self { 101 CheckHandleAvailabilityError::InvalidEmail(v) => { 102 CheckHandleAvailabilityError::InvalidEmail(v.into_static()) 103 } 104 CheckHandleAvailabilityError::Unknown(v) => { 105 CheckHandleAvailabilityError::Unknown(v.into_static()) 106 } 107 } 108 } 109} 110 111///Response type for 112///com.atproto.temp.checkHandleAvailability 113pub struct CheckHandleAvailabilityResponse; 114impl jacquard_common::xrpc::XrpcResp for CheckHandleAvailabilityResponse { 115 const NSID: &'static str = "com.atproto.temp.checkHandleAvailability"; 116 const ENCODING: &'static str = "application/json"; 117 type Output<'de> = CheckHandleAvailabilityOutput<'de>; 118 type Err<'de> = CheckHandleAvailabilityError<'de>; 119} 120 121impl<'de> jacquard_common::xrpc::XrpcRequest<'de> for CheckHandleAvailability<'de> { 122 const NSID: &'static str = "com.atproto.temp.checkHandleAvailability"; 123 const METHOD: jacquard_common::xrpc::XrpcMethod = jacquard_common::xrpc::XrpcMethod::Query; 124 type Response = CheckHandleAvailabilityResponse; 125} 126 127///Endpoint type for 128///com.atproto.temp.checkHandleAvailability 129pub struct CheckHandleAvailabilityRequest; 130impl jacquard_common::xrpc::XrpcEndpoint for CheckHandleAvailabilityRequest { 131 const PATH: &'static str = "/xrpc/com.atproto.temp.checkHandleAvailability"; 132 const METHOD: jacquard_common::xrpc::XrpcMethod = jacquard_common::xrpc::XrpcMethod::Query; 133 type Request<'de> = CheckHandleAvailability<'de>; 134 type Response = CheckHandleAvailabilityResponse; 135} 136 137///Indicates the provided handle is available. 138#[jacquard_derive::lexicon] 139#[derive( 140 serde::Serialize, 141 serde::Deserialize, 142 Debug, 143 Clone, 144 PartialEq, 145 Eq, 146 jacquard_derive::IntoStatic 147)] 148#[serde(rename_all = "camelCase")] 149pub struct ResultAvailable<'a> {} 150///Indicates the provided handle is unavailable and gives suggestions of available handles. 151#[jacquard_derive::lexicon] 152#[derive( 153 serde::Serialize, 154 serde::Deserialize, 155 Debug, 156 Clone, 157 PartialEq, 158 Eq, 159 jacquard_derive::IntoStatic 160)] 161#[serde(rename_all = "camelCase")] 162pub struct ResultUnavailable<'a> { 163 ///List of suggested handles based on the provided inputs. 164 #[serde(borrow)] 165 pub suggestions: Vec< 166 crate::com_atproto::temp::check_handle_availability::Suggestion<'a>, 167 >, 168} 169 170#[jacquard_derive::lexicon] 171#[derive( 172 serde::Serialize, 173 serde::Deserialize, 174 Debug, 175 Clone, 176 PartialEq, 177 Eq, 178 jacquard_derive::IntoStatic 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 pub method: jacquard_common::CowStr<'a>, 187}