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