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}