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