Skip to main content

jacquard_api/com_atproto/server/
reset_password.rs

1// @generated by jacquard-lexicon. DO NOT EDIT.
2//
3// Lexicon: com.atproto.server.resetPassword
4//
5// This file was automatically generated from Lexicon schemas.
6// Any manual changes will be overwritten on the next regeneration.
7
8#[allow(unused_imports)]
9use alloc::collections::BTreeMap;
10
11#[allow(unused_imports)]
12use core::marker::PhantomData;
13use jacquard_common::CowStr;
14use jacquard_derive::{IntoStatic, lexicon, open_union};
15use serde::{Serialize, Deserialize};
16
17#[lexicon]
18#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic, Default)]
19#[serde(rename_all = "camelCase")]
20pub struct ResetPassword<'a> {
21    #[serde(borrow)]
22    pub password: CowStr<'a>,
23    #[serde(borrow)]
24    pub token: CowStr<'a>,
25}
26
27
28#[open_union]
29#[derive(
30    Serialize,
31    Deserialize,
32    Debug,
33    Clone,
34    PartialEq,
35    Eq,
36    thiserror::Error,
37    miette::Diagnostic,
38    IntoStatic
39)]
40
41#[serde(tag = "error", content = "message")]
42#[serde(bound(deserialize = "'de: 'a"))]
43pub enum ResetPasswordError<'a> {
44    #[serde(rename = "ExpiredToken")]
45    ExpiredToken(Option<CowStr<'a>>),
46    #[serde(rename = "InvalidToken")]
47    InvalidToken(Option<CowStr<'a>>),
48}
49
50impl core::fmt::Display for ResetPasswordError<'_> {
51    fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
52        match self {
53            Self::ExpiredToken(msg) => {
54                write!(f, "ExpiredToken")?;
55                if let Some(msg) = msg {
56                    write!(f, ": {}", msg)?;
57                }
58                Ok(())
59            }
60            Self::InvalidToken(msg) => {
61                write!(f, "InvalidToken")?;
62                if let Some(msg) = msg {
63                    write!(f, ": {}", msg)?;
64                }
65                Ok(())
66            }
67            Self::Unknown(err) => write!(f, "Unknown error: {:?}", err),
68        }
69    }
70}
71
72/// Response type for com.atproto.server.resetPassword
73pub struct ResetPasswordResponse;
74impl jacquard_common::xrpc::XrpcResp for ResetPasswordResponse {
75    const NSID: &'static str = "com.atproto.server.resetPassword";
76    const ENCODING: &'static str = "application/json";
77    type Output<'de> = ();
78    type Err<'de> = ResetPasswordError<'de>;
79}
80
81impl<'a> jacquard_common::xrpc::XrpcRequest for ResetPassword<'a> {
82    const NSID: &'static str = "com.atproto.server.resetPassword";
83    const METHOD: jacquard_common::xrpc::XrpcMethod = jacquard_common::xrpc::XrpcMethod::Procedure(
84        "application/json",
85    );
86    type Response = ResetPasswordResponse;
87}
88
89/// Endpoint type for com.atproto.server.resetPassword
90pub struct ResetPasswordRequest;
91impl jacquard_common::xrpc::XrpcEndpoint for ResetPasswordRequest {
92    const PATH: &'static str = "/xrpc/com.atproto.server.resetPassword";
93    const METHOD: jacquard_common::xrpc::XrpcMethod = jacquard_common::xrpc::XrpcMethod::Procedure(
94        "application/json",
95    );
96    type Request<'de> = ResetPassword<'de>;
97    type Response = ResetPasswordResponse;
98}