Skip to main content

jacquard_api/com_atproto/sync/
get_checkout.rs

1// @generated by jacquard-lexicon. DO NOT EDIT.
2//
3// Lexicon: com.atproto.sync.getCheckout
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 core::marker::PhantomData;
10use jacquard_common::deps::bytes::Bytes;
11use jacquard_common::types::string::Did;
12use jacquard_derive::IntoStatic;
13use serde::{Serialize, Deserialize};
14
15#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic)]
16#[serde(rename_all = "camelCase")]
17pub struct GetCheckout<'a> {
18    #[serde(borrow)]
19    pub did: Did<'a>,
20}
21
22
23#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic)]
24#[serde(rename_all = "camelCase")]
25pub struct GetCheckoutOutput {
26    pub body: Bytes,
27}
28
29/// Response type for com.atproto.sync.getCheckout
30pub struct GetCheckoutResponse;
31impl jacquard_common::xrpc::XrpcResp for GetCheckoutResponse {
32    const NSID: &'static str = "com.atproto.sync.getCheckout";
33    const ENCODING: &'static str = "application/vnd.ipld.car";
34    type Output<'de> = GetCheckoutOutput;
35    type Err<'de> = jacquard_common::xrpc::GenericError<'de>;
36    fn encode_output(
37        output: &Self::Output<'_>,
38    ) -> Result<Vec<u8>, jacquard_common::xrpc::EncodeError> {
39        Ok(output.body.to_vec())
40    }
41    fn decode_output<'de>(
42        body: &'de [u8],
43    ) -> Result<Self::Output<'de>, jacquard_common::error::DecodeError>
44    where
45        Self::Output<'de>: serde::Deserialize<'de>,
46    {
47        Ok(GetCheckoutOutput {
48            body: jacquard_common::deps::bytes::Bytes::copy_from_slice(body),
49        })
50    }
51}
52
53impl<'a> jacquard_common::xrpc::XrpcRequest for GetCheckout<'a> {
54    const NSID: &'static str = "com.atproto.sync.getCheckout";
55    const METHOD: jacquard_common::xrpc::XrpcMethod = jacquard_common::xrpc::XrpcMethod::Query;
56    type Response = GetCheckoutResponse;
57}
58
59/// Endpoint type for com.atproto.sync.getCheckout
60pub struct GetCheckoutRequest;
61impl jacquard_common::xrpc::XrpcEndpoint for GetCheckoutRequest {
62    const PATH: &'static str = "/xrpc/com.atproto.sync.getCheckout";
63    const METHOD: jacquard_common::xrpc::XrpcMethod = jacquard_common::xrpc::XrpcMethod::Query;
64    type Request<'de> = GetCheckout<'de>;
65    type Response = GetCheckoutResponse;
66}
67
68pub mod get_checkout_state {
69
70    pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
71    #[allow(unused)]
72    use ::core::marker::PhantomData;
73    mod sealed {
74        pub trait Sealed {}
75    }
76    /// State trait tracking which required fields have been set
77    pub trait State: sealed::Sealed {
78        type Did;
79    }
80    /// Empty state - all required fields are unset
81    pub struct Empty(());
82    impl sealed::Sealed for Empty {}
83    impl State for Empty {
84        type Did = Unset;
85    }
86    ///State transition - sets the `did` field to Set
87    pub struct SetDid<S: State = Empty>(PhantomData<fn() -> S>);
88    impl<S: State> sealed::Sealed for SetDid<S> {}
89    impl<S: State> State for SetDid<S> {
90        type Did = Set<members::did>;
91    }
92    /// Marker types for field names
93    #[allow(non_camel_case_types)]
94    pub mod members {
95        ///Marker type for the `did` field
96        pub struct did(());
97    }
98}
99
100/// Builder for constructing an instance of this type
101pub struct GetCheckoutBuilder<'a, S: get_checkout_state::State> {
102    _state: PhantomData<fn() -> S>,
103    _fields: (Option<Did<'a>>,),
104    _lifetime: PhantomData<&'a ()>,
105}
106
107impl<'a> GetCheckout<'a> {
108    /// Create a new builder for this type
109    pub fn new() -> GetCheckoutBuilder<'a, get_checkout_state::Empty> {
110        GetCheckoutBuilder::new()
111    }
112}
113
114impl<'a> GetCheckoutBuilder<'a, get_checkout_state::Empty> {
115    /// Create a new builder with all fields unset
116    pub fn new() -> Self {
117        GetCheckoutBuilder {
118            _state: PhantomData,
119            _fields: (None,),
120            _lifetime: PhantomData,
121        }
122    }
123}
124
125impl<'a, S> GetCheckoutBuilder<'a, S>
126where
127    S: get_checkout_state::State,
128    S::Did: get_checkout_state::IsUnset,
129{
130    /// Set the `did` field (required)
131    pub fn did(
132        mut self,
133        value: impl Into<Did<'a>>,
134    ) -> GetCheckoutBuilder<'a, get_checkout_state::SetDid<S>> {
135        self._fields.0 = Option::Some(value.into());
136        GetCheckoutBuilder {
137            _state: PhantomData,
138            _fields: self._fields,
139            _lifetime: PhantomData,
140        }
141    }
142}
143
144impl<'a, S> GetCheckoutBuilder<'a, S>
145where
146    S: get_checkout_state::State,
147    S::Did: get_checkout_state::IsSet,
148{
149    /// Build the final struct
150    pub fn build(self) -> GetCheckout<'a> {
151        GetCheckout {
152            did: self._fields.0.unwrap(),
153        }
154    }
155}