A better Rust ATProto crate
at oauth 16 kB view raw
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}