jacquard_api/app_bsky/
graph.rs

1// @generated by jacquard-lexicon. DO NOT EDIT.
2//
3// Lexicon: app.bsky.graph.defs
4//
5// This file was automatically generated from Lexicon schemas.
6// Any manual changes will be overwritten on the next regeneration.
7
8pub mod block;
9pub mod follow;
10pub mod get_actor_starter_packs;
11pub mod get_blocks;
12pub mod get_followers;
13pub mod get_follows;
14pub mod get_known_followers;
15pub mod get_list;
16pub mod get_list_blocks;
17pub mod get_list_mutes;
18pub mod get_lists;
19pub mod get_lists_with_membership;
20pub mod get_mutes;
21pub mod get_relationships;
22pub mod get_starter_pack;
23pub mod get_starter_packs;
24pub mod get_starter_packs_with_membership;
25pub mod get_suggested_follows_by_actor;
26pub mod list;
27pub mod listblock;
28pub mod listitem;
29pub mod mute_actor;
30pub mod mute_actor_list;
31pub mod mute_thread;
32pub mod search_starter_packs;
33pub mod starterpack;
34pub mod unmute_actor;
35pub mod unmute_actor_list;
36pub mod unmute_thread;
37pub mod verification;
38
39#[jacquard_derive::lexicon]
40#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
41#[serde(rename_all = "camelCase")]
42pub struct ListItemView<'a> {
43    #[serde(borrow)]
44    pub subject: crate::app_bsky::actor::ProfileView<'a>,
45    #[serde(borrow)]
46    pub uri: jacquard_common::types::string::AtUri<'a>,
47}
48
49impl jacquard_common::IntoStatic for ListItemView<'_> {
50    type Output = ListItemView<'static>;
51    fn into_static(self) -> Self::Output {
52        ListItemView {
53            subject: self.subject.into_static(),
54            uri: self.uri.into_static(),
55            extra_data: self.extra_data.into_static(),
56        }
57    }
58}
59
60#[derive(Debug, Clone, PartialEq, Eq, Hash)]
61pub enum ListPurpose<'a> {
62    AppBskyGraphDefsModlist,
63    AppBskyGraphDefsCuratelist,
64    AppBskyGraphDefsReferencelist,
65    Other(jacquard_common::CowStr<'a>),
66}
67
68impl<'a> ListPurpose<'a> {
69    pub fn as_str(&self) -> &str {
70        match self {
71            Self::AppBskyGraphDefsModlist => "app.bsky.graph.defs#modlist",
72            Self::AppBskyGraphDefsCuratelist => "app.bsky.graph.defs#curatelist",
73            Self::AppBskyGraphDefsReferencelist => "app.bsky.graph.defs#referencelist",
74            Self::Other(s) => s.as_ref(),
75        }
76    }
77}
78
79impl<'a> From<&'a str> for ListPurpose<'a> {
80    fn from(s: &'a str) -> Self {
81        match s {
82            "app.bsky.graph.defs#modlist" => Self::AppBskyGraphDefsModlist,
83            "app.bsky.graph.defs#curatelist" => Self::AppBskyGraphDefsCuratelist,
84            "app.bsky.graph.defs#referencelist" => Self::AppBskyGraphDefsReferencelist,
85            _ => Self::Other(jacquard_common::CowStr::from(s)),
86        }
87    }
88}
89
90impl<'a> From<String> for ListPurpose<'a> {
91    fn from(s: String) -> Self {
92        match s.as_str() {
93            "app.bsky.graph.defs#modlist" => Self::AppBskyGraphDefsModlist,
94            "app.bsky.graph.defs#curatelist" => Self::AppBskyGraphDefsCuratelist,
95            "app.bsky.graph.defs#referencelist" => Self::AppBskyGraphDefsReferencelist,
96            _ => Self::Other(jacquard_common::CowStr::from(s)),
97        }
98    }
99}
100
101impl<'a> AsRef<str> for ListPurpose<'a> {
102    fn as_ref(&self) -> &str {
103        self.as_str()
104    }
105}
106
107impl<'a> serde::Serialize for ListPurpose<'a> {
108    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
109    where
110        S: serde::Serializer,
111    {
112        serializer.serialize_str(self.as_str())
113    }
114}
115
116impl<'de, 'a> serde::Deserialize<'de> for ListPurpose<'a>
117where
118    'de: 'a,
119{
120    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
121    where
122        D: serde::Deserializer<'de>,
123    {
124        let s = <&'de str>::deserialize(deserializer)?;
125        Ok(Self::from(s))
126    }
127}
128
129impl jacquard_common::IntoStatic for ListPurpose<'_> {
130    type Output = ListPurpose<'static>;
131    fn into_static(self) -> Self::Output {
132        match self {
133            ListPurpose::AppBskyGraphDefsModlist => ListPurpose::AppBskyGraphDefsModlist,
134            ListPurpose::AppBskyGraphDefsCuratelist => {
135                ListPurpose::AppBskyGraphDefsCuratelist
136            }
137            ListPurpose::AppBskyGraphDefsReferencelist => {
138                ListPurpose::AppBskyGraphDefsReferencelist
139            }
140            ListPurpose::Other(v) => ListPurpose::Other(v.into_static()),
141        }
142    }
143}
144
145#[jacquard_derive::lexicon]
146#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
147#[serde(rename_all = "camelCase")]
148pub struct ListView<'a> {
149    #[serde(skip_serializing_if = "std::option::Option::is_none")]
150    #[serde(borrow)]
151    pub avatar: std::option::Option<jacquard_common::types::string::Uri<'a>>,
152    #[serde(borrow)]
153    pub cid: jacquard_common::types::string::Cid<'a>,
154    #[serde(borrow)]
155    pub creator: crate::app_bsky::actor::ProfileView<'a>,
156    #[serde(skip_serializing_if = "std::option::Option::is_none")]
157    #[serde(borrow)]
158    pub description: std::option::Option<jacquard_common::CowStr<'a>>,
159    #[serde(skip_serializing_if = "std::option::Option::is_none")]
160    #[serde(borrow)]
161    pub description_facets: std::option::Option<
162        Vec<crate::app_bsky::richtext::facet::Facet<'a>>,
163    >,
164    pub indexed_at: jacquard_common::types::string::Datetime,
165    #[serde(skip_serializing_if = "std::option::Option::is_none")]
166    #[serde(borrow)]
167    pub labels: std::option::Option<Vec<crate::com_atproto::label::Label<'a>>>,
168    #[serde(skip_serializing_if = "std::option::Option::is_none")]
169    pub list_item_count: std::option::Option<i64>,
170    #[serde(borrow)]
171    pub name: jacquard_common::CowStr<'a>,
172    #[serde(borrow)]
173    pub purpose: crate::app_bsky::graph::ListPurpose<'a>,
174    #[serde(borrow)]
175    pub uri: jacquard_common::types::string::AtUri<'a>,
176    #[serde(skip_serializing_if = "std::option::Option::is_none")]
177    #[serde(borrow)]
178    pub viewer: std::option::Option<crate::app_bsky::graph::ListViewerState<'a>>,
179}
180
181impl jacquard_common::IntoStatic for ListView<'_> {
182    type Output = ListView<'static>;
183    fn into_static(self) -> Self::Output {
184        ListView {
185            avatar: self.avatar.into_static(),
186            cid: self.cid.into_static(),
187            creator: self.creator.into_static(),
188            description: self.description.into_static(),
189            description_facets: self.description_facets.into_static(),
190            indexed_at: self.indexed_at.into_static(),
191            labels: self.labels.into_static(),
192            list_item_count: self.list_item_count.into_static(),
193            name: self.name.into_static(),
194            purpose: self.purpose.into_static(),
195            uri: self.uri.into_static(),
196            viewer: self.viewer.into_static(),
197            extra_data: self.extra_data.into_static(),
198        }
199    }
200}
201
202#[jacquard_derive::lexicon]
203#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
204#[serde(rename_all = "camelCase")]
205pub struct ListViewBasic<'a> {
206    #[serde(skip_serializing_if = "std::option::Option::is_none")]
207    #[serde(borrow)]
208    pub avatar: std::option::Option<jacquard_common::types::string::Uri<'a>>,
209    #[serde(borrow)]
210    pub cid: jacquard_common::types::string::Cid<'a>,
211    #[serde(skip_serializing_if = "std::option::Option::is_none")]
212    pub indexed_at: std::option::Option<jacquard_common::types::string::Datetime>,
213    #[serde(skip_serializing_if = "std::option::Option::is_none")]
214    #[serde(borrow)]
215    pub labels: std::option::Option<Vec<crate::com_atproto::label::Label<'a>>>,
216    #[serde(skip_serializing_if = "std::option::Option::is_none")]
217    pub list_item_count: std::option::Option<i64>,
218    #[serde(borrow)]
219    pub name: jacquard_common::CowStr<'a>,
220    #[serde(borrow)]
221    pub purpose: crate::app_bsky::graph::ListPurpose<'a>,
222    #[serde(borrow)]
223    pub uri: jacquard_common::types::string::AtUri<'a>,
224    #[serde(skip_serializing_if = "std::option::Option::is_none")]
225    #[serde(borrow)]
226    pub viewer: std::option::Option<crate::app_bsky::graph::ListViewerState<'a>>,
227}
228
229impl jacquard_common::IntoStatic for ListViewBasic<'_> {
230    type Output = ListViewBasic<'static>;
231    fn into_static(self) -> Self::Output {
232        ListViewBasic {
233            avatar: self.avatar.into_static(),
234            cid: self.cid.into_static(),
235            indexed_at: self.indexed_at.into_static(),
236            labels: self.labels.into_static(),
237            list_item_count: self.list_item_count.into_static(),
238            name: self.name.into_static(),
239            purpose: self.purpose.into_static(),
240            uri: self.uri.into_static(),
241            viewer: self.viewer.into_static(),
242            extra_data: self.extra_data.into_static(),
243        }
244    }
245}
246
247#[jacquard_derive::lexicon]
248#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
249#[serde(rename_all = "camelCase")]
250pub struct ListViewerState<'a> {
251    #[serde(skip_serializing_if = "std::option::Option::is_none")]
252    #[serde(borrow)]
253    pub blocked: std::option::Option<jacquard_common::types::string::AtUri<'a>>,
254    #[serde(skip_serializing_if = "std::option::Option::is_none")]
255    pub muted: std::option::Option<bool>,
256}
257
258impl jacquard_common::IntoStatic for ListViewerState<'_> {
259    type Output = ListViewerState<'static>;
260    fn into_static(self) -> Self::Output {
261        ListViewerState {
262            blocked: self.blocked.into_static(),
263            muted: self.muted.into_static(),
264            extra_data: self.extra_data.into_static(),
265        }
266    }
267}
268
269///indicates that a handle or DID could not be resolved
270#[jacquard_derive::lexicon]
271#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
272#[serde(rename_all = "camelCase")]
273pub struct NotFoundActor<'a> {
274    #[serde(borrow)]
275    pub actor: jacquard_common::types::ident::AtIdentifier<'a>,
276    pub not_found: bool,
277}
278
279impl jacquard_common::IntoStatic for NotFoundActor<'_> {
280    type Output = NotFoundActor<'static>;
281    fn into_static(self) -> Self::Output {
282        NotFoundActor {
283            actor: self.actor.into_static(),
284            not_found: self.not_found.into_static(),
285            extra_data: self.extra_data.into_static(),
286        }
287    }
288}
289
290///lists the bi-directional graph relationships between one actor (not indicated in the object), and the target actors (the DID included in the object)
291#[jacquard_derive::lexicon]
292#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
293#[serde(rename_all = "camelCase")]
294pub struct Relationship<'a> {
295    #[serde(borrow)]
296    pub did: jacquard_common::types::string::Did<'a>,
297    ///if the actor is followed by this DID, contains the AT-URI of the follow record
298    #[serde(skip_serializing_if = "std::option::Option::is_none")]
299    #[serde(borrow)]
300    pub followed_by: std::option::Option<jacquard_common::types::string::AtUri<'a>>,
301    ///if the actor follows this DID, this is the AT-URI of the follow record
302    #[serde(skip_serializing_if = "std::option::Option::is_none")]
303    #[serde(borrow)]
304    pub following: std::option::Option<jacquard_common::types::string::AtUri<'a>>,
305}
306
307impl jacquard_common::IntoStatic for Relationship<'_> {
308    type Output = Relationship<'static>;
309    fn into_static(self) -> Self::Output {
310        Relationship {
311            did: self.did.into_static(),
312            followed_by: self.followed_by.into_static(),
313            following: self.following.into_static(),
314            extra_data: self.extra_data.into_static(),
315        }
316    }
317}
318
319#[jacquard_derive::lexicon]
320#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
321#[serde(rename_all = "camelCase")]
322pub struct StarterPackView<'a> {
323    #[serde(borrow)]
324    pub cid: jacquard_common::types::string::Cid<'a>,
325    #[serde(borrow)]
326    pub creator: crate::app_bsky::actor::ProfileViewBasic<'a>,
327    #[serde(skip_serializing_if = "std::option::Option::is_none")]
328    #[serde(borrow)]
329    pub feeds: std::option::Option<Vec<crate::app_bsky::feed::GeneratorView<'a>>>,
330    pub indexed_at: jacquard_common::types::string::Datetime,
331    #[serde(skip_serializing_if = "std::option::Option::is_none")]
332    pub joined_all_time_count: std::option::Option<i64>,
333    #[serde(skip_serializing_if = "std::option::Option::is_none")]
334    pub joined_week_count: std::option::Option<i64>,
335    #[serde(skip_serializing_if = "std::option::Option::is_none")]
336    #[serde(borrow)]
337    pub labels: std::option::Option<Vec<crate::com_atproto::label::Label<'a>>>,
338    #[serde(skip_serializing_if = "std::option::Option::is_none")]
339    #[serde(borrow)]
340    pub list: std::option::Option<crate::app_bsky::graph::ListViewBasic<'a>>,
341    #[serde(skip_serializing_if = "std::option::Option::is_none")]
342    #[serde(borrow)]
343    pub list_items_sample: std::option::Option<
344        Vec<crate::app_bsky::graph::ListItemView<'a>>,
345    >,
346    #[serde(borrow)]
347    pub record: jacquard_common::types::value::Data<'a>,
348    #[serde(borrow)]
349    pub uri: jacquard_common::types::string::AtUri<'a>,
350}
351
352impl jacquard_common::IntoStatic for StarterPackView<'_> {
353    type Output = StarterPackView<'static>;
354    fn into_static(self) -> Self::Output {
355        StarterPackView {
356            cid: self.cid.into_static(),
357            creator: self.creator.into_static(),
358            feeds: self.feeds.into_static(),
359            indexed_at: self.indexed_at.into_static(),
360            joined_all_time_count: self.joined_all_time_count.into_static(),
361            joined_week_count: self.joined_week_count.into_static(),
362            labels: self.labels.into_static(),
363            list: self.list.into_static(),
364            list_items_sample: self.list_items_sample.into_static(),
365            record: self.record.into_static(),
366            uri: self.uri.into_static(),
367            extra_data: self.extra_data.into_static(),
368        }
369    }
370}
371
372#[jacquard_derive::lexicon]
373#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
374#[serde(rename_all = "camelCase")]
375pub struct StarterPackViewBasic<'a> {
376    #[serde(borrow)]
377    pub cid: jacquard_common::types::string::Cid<'a>,
378    #[serde(borrow)]
379    pub creator: crate::app_bsky::actor::ProfileViewBasic<'a>,
380    pub indexed_at: jacquard_common::types::string::Datetime,
381    #[serde(skip_serializing_if = "std::option::Option::is_none")]
382    pub joined_all_time_count: std::option::Option<i64>,
383    #[serde(skip_serializing_if = "std::option::Option::is_none")]
384    pub joined_week_count: std::option::Option<i64>,
385    #[serde(skip_serializing_if = "std::option::Option::is_none")]
386    #[serde(borrow)]
387    pub labels: std::option::Option<Vec<crate::com_atproto::label::Label<'a>>>,
388    #[serde(skip_serializing_if = "std::option::Option::is_none")]
389    pub list_item_count: std::option::Option<i64>,
390    #[serde(borrow)]
391    pub record: jacquard_common::types::value::Data<'a>,
392    #[serde(borrow)]
393    pub uri: jacquard_common::types::string::AtUri<'a>,
394}
395
396impl jacquard_common::IntoStatic for StarterPackViewBasic<'_> {
397    type Output = StarterPackViewBasic<'static>;
398    fn into_static(self) -> Self::Output {
399        StarterPackViewBasic {
400            cid: self.cid.into_static(),
401            creator: self.creator.into_static(),
402            indexed_at: self.indexed_at.into_static(),
403            joined_all_time_count: self.joined_all_time_count.into_static(),
404            joined_week_count: self.joined_week_count.into_static(),
405            labels: self.labels.into_static(),
406            list_item_count: self.list_item_count.into_static(),
407            record: self.record.into_static(),
408            uri: self.uri.into_static(),
409            extra_data: self.extra_data.into_static(),
410        }
411    }
412}