1pub 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#[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#[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#[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#[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#[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 #[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 #[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}