jacquard_api/com_atproto/sync/
list_blobs.rs

1// @generated by jacquard-lexicon. DO NOT EDIT.
2//
3// Lexicon: com.atproto.sync.listBlobs
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)]
17#[builder(start_fn = new)]
18#[serde(rename_all = "camelCase")]
19pub struct ListBlobs<'a> {
20    #[serde(skip_serializing_if = "std::option::Option::is_none")]
21    #[serde(borrow)]
22    #[builder(into)]
23    pub cursor: std::option::Option<jacquard_common::CowStr<'a>>,
24    #[serde(borrow)]
25    pub did: jacquard_common::types::string::Did<'a>,
26    ///(default: 500, min: 1, max: 1000)
27    #[serde(skip_serializing_if = "std::option::Option::is_none")]
28    pub limit: std::option::Option<i64>,
29    #[serde(skip_serializing_if = "std::option::Option::is_none")]
30    pub since: std::option::Option<jacquard_common::types::string::Tid>,
31}
32
33impl jacquard_common::IntoStatic for ListBlobs<'_> {
34    type Output = ListBlobs<'static>;
35    fn into_static(self) -> Self::Output {
36        ListBlobs {
37            cursor: self.cursor.into_static(),
38            did: self.did.into_static(),
39            limit: self.limit.into_static(),
40            since: self.since.into_static(),
41        }
42    }
43}
44
45#[jacquard_derive::lexicon]
46#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
47#[serde(rename_all = "camelCase")]
48pub struct ListBlobsOutput<'a> {
49    #[serde(borrow)]
50    pub cids: Vec<jacquard_common::types::string::Cid<'a>>,
51    #[serde(skip_serializing_if = "std::option::Option::is_none")]
52    #[serde(borrow)]
53    pub cursor: std::option::Option<jacquard_common::CowStr<'a>>,
54}
55
56impl jacquard_common::IntoStatic for ListBlobsOutput<'_> {
57    type Output = ListBlobsOutput<'static>;
58    fn into_static(self) -> Self::Output {
59        ListBlobsOutput {
60            cids: self.cids.into_static(),
61            cursor: self.cursor.into_static(),
62            extra_data: self.extra_data.into_static(),
63        }
64    }
65}
66
67#[jacquard_derive::open_union]
68#[derive(
69    serde::Serialize,
70    serde::Deserialize,
71    Debug,
72    Clone,
73    PartialEq,
74    Eq,
75    thiserror::Error,
76    miette::Diagnostic
77)]
78#[serde(tag = "error", content = "message")]
79#[serde(bound(deserialize = "'de: 'a"))]
80pub enum ListBlobsError<'a> {
81    #[serde(rename = "RepoNotFound")]
82    RepoNotFound(std::option::Option<String>),
83    #[serde(rename = "RepoTakendown")]
84    RepoTakendown(std::option::Option<String>),
85    #[serde(rename = "RepoSuspended")]
86    RepoSuspended(std::option::Option<String>),
87    #[serde(rename = "RepoDeactivated")]
88    RepoDeactivated(std::option::Option<String>),
89}
90
91impl std::fmt::Display for ListBlobsError<'_> {
92    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
93        match self {
94            Self::RepoNotFound(msg) => {
95                write!(f, "RepoNotFound")?;
96                if let Some(msg) = msg {
97                    write!(f, ": {}", msg)?;
98                }
99                Ok(())
100            }
101            Self::RepoTakendown(msg) => {
102                write!(f, "RepoTakendown")?;
103                if let Some(msg) = msg {
104                    write!(f, ": {}", msg)?;
105                }
106                Ok(())
107            }
108            Self::RepoSuspended(msg) => {
109                write!(f, "RepoSuspended")?;
110                if let Some(msg) = msg {
111                    write!(f, ": {}", msg)?;
112                }
113                Ok(())
114            }
115            Self::RepoDeactivated(msg) => {
116                write!(f, "RepoDeactivated")?;
117                if let Some(msg) = msg {
118                    write!(f, ": {}", msg)?;
119                }
120                Ok(())
121            }
122            Self::Unknown(err) => write!(f, "Unknown error: {:?}", err),
123        }
124    }
125}
126
127impl jacquard_common::IntoStatic for ListBlobsError<'_> {
128    type Output = ListBlobsError<'static>;
129    fn into_static(self) -> Self::Output {
130        match self {
131            ListBlobsError::RepoNotFound(v) => {
132                ListBlobsError::RepoNotFound(v.into_static())
133            }
134            ListBlobsError::RepoTakendown(v) => {
135                ListBlobsError::RepoTakendown(v.into_static())
136            }
137            ListBlobsError::RepoSuspended(v) => {
138                ListBlobsError::RepoSuspended(v.into_static())
139            }
140            ListBlobsError::RepoDeactivated(v) => {
141                ListBlobsError::RepoDeactivated(v.into_static())
142            }
143            ListBlobsError::Unknown(v) => ListBlobsError::Unknown(v.into_static()),
144        }
145    }
146}
147
148impl jacquard_common::types::xrpc::XrpcRequest for ListBlobs<'_> {
149    const NSID: &'static str = "com.atproto.sync.listBlobs";
150    const METHOD: jacquard_common::types::xrpc::XrpcMethod = jacquard_common::types::xrpc::XrpcMethod::Query;
151    const OUTPUT_ENCODING: &'static str = "application/json";
152    type Output<'de> = ListBlobsOutput<'de>;
153    type Err<'de> = ListBlobsError<'de>;
154}