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}