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