jacquard_api/com_atproto/temp/
check_handle_availability.rs

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}