A better Rust ATProto crate
at oauth 41 kB view raw
1// @generated by jacquard-lexicon. DO NOT EDIT. 2// 3// Lexicon: app.bsky.actor.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 get_preferences; 9pub mod get_profile; 10pub mod get_profiles; 11pub mod get_suggestions; 12pub mod profile; 13pub mod put_preferences; 14pub mod search_actors; 15pub mod search_actors_typeahead; 16pub mod status; 17 18#[jacquard_derive::lexicon] 19#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 20#[serde(rename_all = "camelCase")] 21pub struct AdultContentPref<'a> { 22 pub enabled: bool, 23} 24 25impl jacquard_common::IntoStatic for AdultContentPref<'_> { 26 type Output = AdultContentPref<'static>; 27 fn into_static(self) -> Self::Output { 28 AdultContentPref { 29 enabled: self.enabled.into_static(), 30 extra_data: self.extra_data.into_static(), 31 } 32 } 33} 34 35///If set, an active progress guide. Once completed, can be set to undefined. Should have unspecced fields tracking progress. 36#[jacquard_derive::lexicon] 37#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 38#[serde(rename_all = "camelCase")] 39pub struct BskyAppProgressGuide<'a> { 40 #[serde(borrow)] 41 pub guide: jacquard_common::CowStr<'a>, 42} 43 44impl jacquard_common::IntoStatic for BskyAppProgressGuide<'_> { 45 type Output = BskyAppProgressGuide<'static>; 46 fn into_static(self) -> Self::Output { 47 BskyAppProgressGuide { 48 guide: self.guide.into_static(), 49 extra_data: self.extra_data.into_static(), 50 } 51 } 52} 53 54///A grab bag of state that's specific to the bsky.app program. Third-party apps shouldn't use this. 55#[jacquard_derive::lexicon] 56#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 57#[serde(rename_all = "camelCase")] 58pub struct BskyAppStatePref<'a> { 59 #[serde(skip_serializing_if = "std::option::Option::is_none")] 60 #[serde(borrow)] 61 pub active_progress_guide: std::option::Option< 62 crate::app_bsky::actor::BskyAppProgressGuide<'a>, 63 >, 64 ///Storage for NUXs the user has encountered. 65 #[serde(skip_serializing_if = "std::option::Option::is_none")] 66 #[serde(borrow)] 67 pub nuxs: std::option::Option<Vec<crate::app_bsky::actor::Nux<'a>>>, 68 ///An array of tokens which identify nudges (modals, popups, tours, highlight dots) that should be shown to the user. 69 #[serde(skip_serializing_if = "std::option::Option::is_none")] 70 #[serde(borrow)] 71 pub queued_nudges: std::option::Option<Vec<jacquard_common::CowStr<'a>>>, 72} 73 74impl jacquard_common::IntoStatic for BskyAppStatePref<'_> { 75 type Output = BskyAppStatePref<'static>; 76 fn into_static(self) -> Self::Output { 77 BskyAppStatePref { 78 active_progress_guide: self.active_progress_guide.into_static(), 79 nuxs: self.nuxs.into_static(), 80 queued_nudges: self.queued_nudges.into_static(), 81 extra_data: self.extra_data.into_static(), 82 } 83 } 84} 85 86#[jacquard_derive::lexicon] 87#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 88#[serde(rename_all = "camelCase")] 89pub struct ContentLabelPref<'a> { 90 #[serde(borrow)] 91 pub label: jacquard_common::CowStr<'a>, 92 ///Which labeler does this preference apply to? If undefined, applies globally. 93 #[serde(skip_serializing_if = "std::option::Option::is_none")] 94 #[serde(borrow)] 95 pub labeler_did: std::option::Option<jacquard_common::types::string::Did<'a>>, 96 #[serde(borrow)] 97 pub visibility: jacquard_common::CowStr<'a>, 98} 99 100impl jacquard_common::IntoStatic for ContentLabelPref<'_> { 101 type Output = ContentLabelPref<'static>; 102 fn into_static(self) -> Self::Output { 103 ContentLabelPref { 104 label: self.label.into_static(), 105 labeler_did: self.labeler_did.into_static(), 106 visibility: self.visibility.into_static(), 107 extra_data: self.extra_data.into_static(), 108 } 109 } 110} 111 112#[jacquard_derive::lexicon] 113#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 114#[serde(rename_all = "camelCase")] 115pub struct FeedViewPref<'a> { 116 ///The URI of the feed, or an identifier which describes the feed. 117 #[serde(borrow)] 118 pub feed: jacquard_common::CowStr<'a>, 119 ///Hide quote posts in the feed. 120 #[serde(skip_serializing_if = "std::option::Option::is_none")] 121 pub hide_quote_posts: std::option::Option<bool>, 122 ///Hide replies in the feed. 123 #[serde(skip_serializing_if = "std::option::Option::is_none")] 124 pub hide_replies: std::option::Option<bool>, 125 ///Hide replies in the feed if they do not have this number of likes. 126 #[serde(skip_serializing_if = "std::option::Option::is_none")] 127 pub hide_replies_by_like_count: std::option::Option<i64>, 128 ///Hide replies in the feed if they are not by followed users. 129 #[serde(skip_serializing_if = "std::option::Option::is_none")] 130 pub hide_replies_by_unfollowed: std::option::Option<bool>, 131 ///Hide reposts in the feed. 132 #[serde(skip_serializing_if = "std::option::Option::is_none")] 133 pub hide_reposts: std::option::Option<bool>, 134} 135 136impl jacquard_common::IntoStatic for FeedViewPref<'_> { 137 type Output = FeedViewPref<'static>; 138 fn into_static(self) -> Self::Output { 139 FeedViewPref { 140 feed: self.feed.into_static(), 141 hide_quote_posts: self.hide_quote_posts.into_static(), 142 hide_replies: self.hide_replies.into_static(), 143 hide_replies_by_like_count: self.hide_replies_by_like_count.into_static(), 144 hide_replies_by_unfollowed: self.hide_replies_by_unfollowed.into_static(), 145 hide_reposts: self.hide_reposts.into_static(), 146 extra_data: self.extra_data.into_static(), 147 } 148 } 149} 150 151#[jacquard_derive::lexicon] 152#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 153#[serde(rename_all = "camelCase")] 154pub struct HiddenPostsPref<'a> { 155 ///A list of URIs of posts the account owner has hidden. 156 #[serde(borrow)] 157 pub items: Vec<jacquard_common::types::string::AtUri<'a>>, 158} 159 160impl jacquard_common::IntoStatic for HiddenPostsPref<'_> { 161 type Output = HiddenPostsPref<'static>; 162 fn into_static(self) -> Self::Output { 163 HiddenPostsPref { 164 items: self.items.into_static(), 165 extra_data: self.extra_data.into_static(), 166 } 167 } 168} 169 170#[jacquard_derive::lexicon] 171#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 172#[serde(rename_all = "camelCase")] 173pub struct InterestsPref<'a> { 174 ///A list of tags which describe the account owner's interests gathered during onboarding. 175 #[serde(borrow)] 176 pub tags: Vec<jacquard_common::CowStr<'a>>, 177} 178 179impl jacquard_common::IntoStatic for InterestsPref<'_> { 180 type Output = InterestsPref<'static>; 181 fn into_static(self) -> Self::Output { 182 InterestsPref { 183 tags: self.tags.into_static(), 184 extra_data: self.extra_data.into_static(), 185 } 186 } 187} 188 189///The subject's followers whom you also follow 190#[jacquard_derive::lexicon] 191#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 192#[serde(rename_all = "camelCase")] 193pub struct KnownFollowers<'a> { 194 pub count: i64, 195 #[serde(borrow)] 196 pub followers: Vec<crate::app_bsky::actor::ProfileViewBasic<'a>>, 197} 198 199impl jacquard_common::IntoStatic for KnownFollowers<'_> { 200 type Output = KnownFollowers<'static>; 201 fn into_static(self) -> Self::Output { 202 KnownFollowers { 203 count: self.count.into_static(), 204 followers: self.followers.into_static(), 205 extra_data: self.extra_data.into_static(), 206 } 207 } 208} 209 210#[jacquard_derive::lexicon] 211#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 212#[serde(rename_all = "camelCase")] 213pub struct LabelerPrefItem<'a> { 214 #[serde(borrow)] 215 pub did: jacquard_common::types::string::Did<'a>, 216} 217 218impl jacquard_common::IntoStatic for LabelerPrefItem<'_> { 219 type Output = LabelerPrefItem<'static>; 220 fn into_static(self) -> Self::Output { 221 LabelerPrefItem { 222 did: self.did.into_static(), 223 extra_data: self.extra_data.into_static(), 224 } 225 } 226} 227 228#[jacquard_derive::lexicon] 229#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 230#[serde(rename_all = "camelCase")] 231pub struct LabelersPref<'a> { 232 #[serde(borrow)] 233 pub labelers: Vec<crate::app_bsky::actor::LabelerPrefItem<'a>>, 234} 235 236impl jacquard_common::IntoStatic for LabelersPref<'_> { 237 type Output = LabelersPref<'static>; 238 fn into_static(self) -> Self::Output { 239 LabelersPref { 240 labelers: self.labelers.into_static(), 241 extra_data: self.extra_data.into_static(), 242 } 243 } 244} 245 246///A word that the account owner has muted. 247#[jacquard_derive::lexicon] 248#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 249#[serde(rename_all = "camelCase")] 250pub struct MutedWord<'a> { 251 ///Groups of users to apply the muted word to. If undefined, applies to all users. 252 #[serde(skip_serializing_if = "std::option::Option::is_none")] 253 #[serde(borrow)] 254 pub actor_target: std::option::Option<jacquard_common::CowStr<'a>>, 255 ///The date and time at which the muted word will expire and no longer be applied. 256 #[serde(skip_serializing_if = "std::option::Option::is_none")] 257 pub expires_at: std::option::Option<jacquard_common::types::string::Datetime>, 258 #[serde(skip_serializing_if = "std::option::Option::is_none")] 259 #[serde(borrow)] 260 pub id: std::option::Option<jacquard_common::CowStr<'a>>, 261 ///The intended targets of the muted word. 262 #[serde(borrow)] 263 pub targets: Vec<crate::app_bsky::actor::MutedWordTarget<'a>>, 264 ///The muted word itself. 265 #[serde(borrow)] 266 pub value: jacquard_common::CowStr<'a>, 267} 268 269impl jacquard_common::IntoStatic for MutedWord<'_> { 270 type Output = MutedWord<'static>; 271 fn into_static(self) -> Self::Output { 272 MutedWord { 273 actor_target: self.actor_target.into_static(), 274 expires_at: self.expires_at.into_static(), 275 id: self.id.into_static(), 276 targets: self.targets.into_static(), 277 value: self.value.into_static(), 278 extra_data: self.extra_data.into_static(), 279 } 280 } 281} 282 283#[derive(Debug, Clone, PartialEq, Eq, Hash)] 284pub enum MutedWordTarget<'a> { 285 Content, 286 Tag, 287 Other(jacquard_common::CowStr<'a>), 288} 289 290impl<'a> MutedWordTarget<'a> { 291 pub fn as_str(&self) -> &str { 292 match self { 293 Self::Content => "content", 294 Self::Tag => "tag", 295 Self::Other(s) => s.as_ref(), 296 } 297 } 298} 299 300impl<'a> From<&'a str> for MutedWordTarget<'a> { 301 fn from(s: &'a str) -> Self { 302 match s { 303 "content" => Self::Content, 304 "tag" => Self::Tag, 305 _ => Self::Other(jacquard_common::CowStr::from(s)), 306 } 307 } 308} 309 310impl<'a> From<String> for MutedWordTarget<'a> { 311 fn from(s: String) -> Self { 312 match s.as_str() { 313 "content" => Self::Content, 314 "tag" => Self::Tag, 315 _ => Self::Other(jacquard_common::CowStr::from(s)), 316 } 317 } 318} 319 320impl<'a> AsRef<str> for MutedWordTarget<'a> { 321 fn as_ref(&self) -> &str { 322 self.as_str() 323 } 324} 325 326impl<'a> serde::Serialize for MutedWordTarget<'a> { 327 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> 328 where 329 S: serde::Serializer, 330 { 331 serializer.serialize_str(self.as_str()) 332 } 333} 334 335impl<'de, 'a> serde::Deserialize<'de> for MutedWordTarget<'a> 336where 337 'de: 'a, 338{ 339 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error> 340 where 341 D: serde::Deserializer<'de>, 342 { 343 let s = <&'de str>::deserialize(deserializer)?; 344 Ok(Self::from(s)) 345 } 346} 347 348impl jacquard_common::IntoStatic for MutedWordTarget<'_> { 349 type Output = MutedWordTarget<'static>; 350 fn into_static(self) -> Self::Output { 351 match self { 352 MutedWordTarget::Content => MutedWordTarget::Content, 353 MutedWordTarget::Tag => MutedWordTarget::Tag, 354 MutedWordTarget::Other(v) => MutedWordTarget::Other(v.into_static()), 355 } 356 } 357} 358 359#[jacquard_derive::lexicon] 360#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 361#[serde(rename_all = "camelCase")] 362pub struct MutedWordsPref<'a> { 363 ///A list of words the account owner has muted. 364 #[serde(borrow)] 365 pub items: Vec<crate::app_bsky::actor::MutedWord<'a>>, 366} 367 368impl jacquard_common::IntoStatic for MutedWordsPref<'_> { 369 type Output = MutedWordsPref<'static>; 370 fn into_static(self) -> Self::Output { 371 MutedWordsPref { 372 items: self.items.into_static(), 373 extra_data: self.extra_data.into_static(), 374 } 375 } 376} 377 378///A new user experiences (NUX) storage object 379#[jacquard_derive::lexicon] 380#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 381#[serde(rename_all = "camelCase")] 382pub struct Nux<'a> { 383 pub completed: bool, 384 ///Arbitrary data for the NUX. The structure is defined by the NUX itself. Limited to 300 characters. 385 #[serde(skip_serializing_if = "std::option::Option::is_none")] 386 #[serde(borrow)] 387 pub data: std::option::Option<jacquard_common::CowStr<'a>>, 388 ///The date and time at which the NUX will expire and should be considered completed. 389 #[serde(skip_serializing_if = "std::option::Option::is_none")] 390 pub expires_at: std::option::Option<jacquard_common::types::string::Datetime>, 391 #[serde(borrow)] 392 pub id: jacquard_common::CowStr<'a>, 393} 394 395impl jacquard_common::IntoStatic for Nux<'_> { 396 type Output = Nux<'static>; 397 fn into_static(self) -> Self::Output { 398 Nux { 399 completed: self.completed.into_static(), 400 data: self.data.into_static(), 401 expires_at: self.expires_at.into_static(), 402 id: self.id.into_static(), 403 extra_data: self.extra_data.into_static(), 404 } 405 } 406} 407 408#[jacquard_derive::lexicon] 409#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 410#[serde(rename_all = "camelCase")] 411pub struct PersonalDetailsPref<'a> { 412 ///The birth date of account owner. 413 #[serde(skip_serializing_if = "std::option::Option::is_none")] 414 pub birth_date: std::option::Option<jacquard_common::types::string::Datetime>, 415} 416 417impl jacquard_common::IntoStatic for PersonalDetailsPref<'_> { 418 type Output = PersonalDetailsPref<'static>; 419 fn into_static(self) -> Self::Output { 420 PersonalDetailsPref { 421 birth_date: self.birth_date.into_static(), 422 extra_data: self.extra_data.into_static(), 423 } 424 } 425} 426 427///Default post interaction settings for the account. These values should be applied as default values when creating new posts. These refs should mirror the threadgate and postgate records exactly. 428#[jacquard_derive::lexicon] 429#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 430#[serde(rename_all = "camelCase")] 431pub struct PostInteractionSettingsPref<'a> { 432 ///Matches postgate record. List of rules defining who can embed this users posts. If value is an empty array or is undefined, no particular rules apply and anyone can embed. 433 #[serde(skip_serializing_if = "std::option::Option::is_none")] 434 #[serde(borrow)] 435 pub postgate_embedding_rules: std::option::Option< 436 Vec<jacquard_common::types::value::Data<'a>>, 437 >, 438 ///Matches threadgate record. List of rules defining who can reply to this users posts. If value is an empty array, no one can reply. If value is undefined, anyone can reply. 439 #[serde(skip_serializing_if = "std::option::Option::is_none")] 440 #[serde(borrow)] 441 pub threadgate_allow_rules: std::option::Option< 442 Vec<jacquard_common::types::value::Data<'a>>, 443 >, 444} 445 446impl jacquard_common::IntoStatic for PostInteractionSettingsPref<'_> { 447 type Output = PostInteractionSettingsPref<'static>; 448 fn into_static(self) -> Self::Output { 449 PostInteractionSettingsPref { 450 postgate_embedding_rules: self.postgate_embedding_rules.into_static(), 451 threadgate_allow_rules: self.threadgate_allow_rules.into_static(), 452 extra_data: self.extra_data.into_static(), 453 } 454 } 455} 456 457pub type Preferences<'a> = Vec<jacquard_common::types::value::Data<'a>>; 458#[jacquard_derive::lexicon] 459#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 460#[serde(rename_all = "camelCase")] 461pub struct ProfileAssociated<'a> { 462 #[serde(skip_serializing_if = "std::option::Option::is_none")] 463 #[serde(borrow)] 464 pub activity_subscription: std::option::Option< 465 crate::app_bsky::actor::ProfileAssociatedActivitySubscription<'a>, 466 >, 467 #[serde(skip_serializing_if = "std::option::Option::is_none")] 468 #[serde(borrow)] 469 pub chat: std::option::Option<crate::app_bsky::actor::ProfileAssociatedChat<'a>>, 470 #[serde(skip_serializing_if = "std::option::Option::is_none")] 471 pub feedgens: std::option::Option<i64>, 472 #[serde(skip_serializing_if = "std::option::Option::is_none")] 473 pub labeler: std::option::Option<bool>, 474 #[serde(skip_serializing_if = "std::option::Option::is_none")] 475 pub lists: std::option::Option<i64>, 476 #[serde(skip_serializing_if = "std::option::Option::is_none")] 477 pub starter_packs: std::option::Option<i64>, 478} 479 480impl jacquard_common::IntoStatic for ProfileAssociated<'_> { 481 type Output = ProfileAssociated<'static>; 482 fn into_static(self) -> Self::Output { 483 ProfileAssociated { 484 activity_subscription: self.activity_subscription.into_static(), 485 chat: self.chat.into_static(), 486 feedgens: self.feedgens.into_static(), 487 labeler: self.labeler.into_static(), 488 lists: self.lists.into_static(), 489 starter_packs: self.starter_packs.into_static(), 490 extra_data: self.extra_data.into_static(), 491 } 492 } 493} 494 495#[jacquard_derive::lexicon] 496#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 497#[serde(rename_all = "camelCase")] 498pub struct ProfileAssociatedActivitySubscription<'a> { 499 #[serde(borrow)] 500 pub allow_subscriptions: jacquard_common::CowStr<'a>, 501} 502 503impl jacquard_common::IntoStatic for ProfileAssociatedActivitySubscription<'_> { 504 type Output = ProfileAssociatedActivitySubscription<'static>; 505 fn into_static(self) -> Self::Output { 506 ProfileAssociatedActivitySubscription { 507 allow_subscriptions: self.allow_subscriptions.into_static(), 508 extra_data: self.extra_data.into_static(), 509 } 510 } 511} 512 513#[jacquard_derive::lexicon] 514#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 515#[serde(rename_all = "camelCase")] 516pub struct ProfileAssociatedChat<'a> { 517 #[serde(borrow)] 518 pub allow_incoming: jacquard_common::CowStr<'a>, 519} 520 521impl jacquard_common::IntoStatic for ProfileAssociatedChat<'_> { 522 type Output = ProfileAssociatedChat<'static>; 523 fn into_static(self) -> Self::Output { 524 ProfileAssociatedChat { 525 allow_incoming: self.allow_incoming.into_static(), 526 extra_data: self.extra_data.into_static(), 527 } 528 } 529} 530 531#[jacquard_derive::lexicon] 532#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 533#[serde(rename_all = "camelCase")] 534pub struct ProfileView<'a> { 535 #[serde(skip_serializing_if = "std::option::Option::is_none")] 536 #[serde(borrow)] 537 pub associated: std::option::Option<crate::app_bsky::actor::ProfileAssociated<'a>>, 538 #[serde(skip_serializing_if = "std::option::Option::is_none")] 539 #[serde(borrow)] 540 pub avatar: std::option::Option<jacquard_common::types::string::Uri<'a>>, 541 #[serde(skip_serializing_if = "std::option::Option::is_none")] 542 pub created_at: std::option::Option<jacquard_common::types::string::Datetime>, 543 #[serde(skip_serializing_if = "std::option::Option::is_none")] 544 #[serde(borrow)] 545 pub description: std::option::Option<jacquard_common::CowStr<'a>>, 546 #[serde(borrow)] 547 pub did: jacquard_common::types::string::Did<'a>, 548 #[serde(skip_serializing_if = "std::option::Option::is_none")] 549 #[serde(borrow)] 550 pub display_name: std::option::Option<jacquard_common::CowStr<'a>>, 551 #[serde(borrow)] 552 pub handle: jacquard_common::types::string::Handle<'a>, 553 #[serde(skip_serializing_if = "std::option::Option::is_none")] 554 pub indexed_at: std::option::Option<jacquard_common::types::string::Datetime>, 555 #[serde(skip_serializing_if = "std::option::Option::is_none")] 556 #[serde(borrow)] 557 pub labels: std::option::Option<Vec<crate::com_atproto::label::Label<'a>>>, 558 #[serde(skip_serializing_if = "std::option::Option::is_none")] 559 #[serde(borrow)] 560 pub pronouns: std::option::Option<jacquard_common::CowStr<'a>>, 561 #[serde(skip_serializing_if = "std::option::Option::is_none")] 562 #[serde(borrow)] 563 pub status: std::option::Option<crate::app_bsky::actor::StatusView<'a>>, 564 #[serde(skip_serializing_if = "std::option::Option::is_none")] 565 #[serde(borrow)] 566 pub verification: std::option::Option<crate::app_bsky::actor::VerificationState<'a>>, 567 #[serde(skip_serializing_if = "std::option::Option::is_none")] 568 #[serde(borrow)] 569 pub viewer: std::option::Option<crate::app_bsky::actor::ViewerState<'a>>, 570} 571 572impl jacquard_common::IntoStatic for ProfileView<'_> { 573 type Output = ProfileView<'static>; 574 fn into_static(self) -> Self::Output { 575 ProfileView { 576 associated: self.associated.into_static(), 577 avatar: self.avatar.into_static(), 578 created_at: self.created_at.into_static(), 579 description: self.description.into_static(), 580 did: self.did.into_static(), 581 display_name: self.display_name.into_static(), 582 handle: self.handle.into_static(), 583 indexed_at: self.indexed_at.into_static(), 584 labels: self.labels.into_static(), 585 pronouns: self.pronouns.into_static(), 586 status: self.status.into_static(), 587 verification: self.verification.into_static(), 588 viewer: self.viewer.into_static(), 589 extra_data: self.extra_data.into_static(), 590 } 591 } 592} 593 594#[jacquard_derive::lexicon] 595#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 596#[serde(rename_all = "camelCase")] 597pub struct ProfileViewBasic<'a> { 598 #[serde(skip_serializing_if = "std::option::Option::is_none")] 599 #[serde(borrow)] 600 pub associated: std::option::Option<crate::app_bsky::actor::ProfileAssociated<'a>>, 601 #[serde(skip_serializing_if = "std::option::Option::is_none")] 602 #[serde(borrow)] 603 pub avatar: std::option::Option<jacquard_common::types::string::Uri<'a>>, 604 #[serde(skip_serializing_if = "std::option::Option::is_none")] 605 pub created_at: std::option::Option<jacquard_common::types::string::Datetime>, 606 #[serde(borrow)] 607 pub did: jacquard_common::types::string::Did<'a>, 608 #[serde(skip_serializing_if = "std::option::Option::is_none")] 609 #[serde(borrow)] 610 pub display_name: std::option::Option<jacquard_common::CowStr<'a>>, 611 #[serde(borrow)] 612 pub handle: jacquard_common::types::string::Handle<'a>, 613 #[serde(skip_serializing_if = "std::option::Option::is_none")] 614 #[serde(borrow)] 615 pub labels: std::option::Option<Vec<crate::com_atproto::label::Label<'a>>>, 616 #[serde(skip_serializing_if = "std::option::Option::is_none")] 617 #[serde(borrow)] 618 pub pronouns: std::option::Option<jacquard_common::CowStr<'a>>, 619 #[serde(skip_serializing_if = "std::option::Option::is_none")] 620 #[serde(borrow)] 621 pub status: std::option::Option<crate::app_bsky::actor::StatusView<'a>>, 622 #[serde(skip_serializing_if = "std::option::Option::is_none")] 623 #[serde(borrow)] 624 pub verification: std::option::Option<crate::app_bsky::actor::VerificationState<'a>>, 625 #[serde(skip_serializing_if = "std::option::Option::is_none")] 626 #[serde(borrow)] 627 pub viewer: std::option::Option<crate::app_bsky::actor::ViewerState<'a>>, 628} 629 630impl jacquard_common::IntoStatic for ProfileViewBasic<'_> { 631 type Output = ProfileViewBasic<'static>; 632 fn into_static(self) -> Self::Output { 633 ProfileViewBasic { 634 associated: self.associated.into_static(), 635 avatar: self.avatar.into_static(), 636 created_at: self.created_at.into_static(), 637 did: self.did.into_static(), 638 display_name: self.display_name.into_static(), 639 handle: self.handle.into_static(), 640 labels: self.labels.into_static(), 641 pronouns: self.pronouns.into_static(), 642 status: self.status.into_static(), 643 verification: self.verification.into_static(), 644 viewer: self.viewer.into_static(), 645 extra_data: self.extra_data.into_static(), 646 } 647 } 648} 649 650#[jacquard_derive::lexicon] 651#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 652#[serde(rename_all = "camelCase")] 653pub struct ProfileViewDetailed<'a> { 654 #[serde(skip_serializing_if = "std::option::Option::is_none")] 655 #[serde(borrow)] 656 pub associated: std::option::Option<crate::app_bsky::actor::ProfileAssociated<'a>>, 657 #[serde(skip_serializing_if = "std::option::Option::is_none")] 658 #[serde(borrow)] 659 pub avatar: std::option::Option<jacquard_common::types::string::Uri<'a>>, 660 #[serde(skip_serializing_if = "std::option::Option::is_none")] 661 #[serde(borrow)] 662 pub banner: std::option::Option<jacquard_common::types::string::Uri<'a>>, 663 #[serde(skip_serializing_if = "std::option::Option::is_none")] 664 pub created_at: std::option::Option<jacquard_common::types::string::Datetime>, 665 #[serde(skip_serializing_if = "std::option::Option::is_none")] 666 #[serde(borrow)] 667 pub description: std::option::Option<jacquard_common::CowStr<'a>>, 668 #[serde(borrow)] 669 pub did: jacquard_common::types::string::Did<'a>, 670 #[serde(skip_serializing_if = "std::option::Option::is_none")] 671 #[serde(borrow)] 672 pub display_name: std::option::Option<jacquard_common::CowStr<'a>>, 673 #[serde(skip_serializing_if = "std::option::Option::is_none")] 674 pub followers_count: std::option::Option<i64>, 675 #[serde(skip_serializing_if = "std::option::Option::is_none")] 676 pub follows_count: std::option::Option<i64>, 677 #[serde(borrow)] 678 pub handle: jacquard_common::types::string::Handle<'a>, 679 #[serde(skip_serializing_if = "std::option::Option::is_none")] 680 pub indexed_at: std::option::Option<jacquard_common::types::string::Datetime>, 681 #[serde(skip_serializing_if = "std::option::Option::is_none")] 682 #[serde(borrow)] 683 pub joined_via_starter_pack: std::option::Option< 684 crate::app_bsky::graph::StarterPackViewBasic<'a>, 685 >, 686 #[serde(skip_serializing_if = "std::option::Option::is_none")] 687 #[serde(borrow)] 688 pub labels: std::option::Option<Vec<crate::com_atproto::label::Label<'a>>>, 689 #[serde(skip_serializing_if = "std::option::Option::is_none")] 690 #[serde(borrow)] 691 pub pinned_post: std::option::Option< 692 crate::com_atproto::repo::strong_ref::StrongRef<'a>, 693 >, 694 #[serde(skip_serializing_if = "std::option::Option::is_none")] 695 pub posts_count: std::option::Option<i64>, 696 #[serde(skip_serializing_if = "std::option::Option::is_none")] 697 #[serde(borrow)] 698 pub pronouns: std::option::Option<jacquard_common::CowStr<'a>>, 699 #[serde(skip_serializing_if = "std::option::Option::is_none")] 700 #[serde(borrow)] 701 pub status: std::option::Option<crate::app_bsky::actor::StatusView<'a>>, 702 #[serde(skip_serializing_if = "std::option::Option::is_none")] 703 #[serde(borrow)] 704 pub verification: std::option::Option<crate::app_bsky::actor::VerificationState<'a>>, 705 #[serde(skip_serializing_if = "std::option::Option::is_none")] 706 #[serde(borrow)] 707 pub viewer: std::option::Option<crate::app_bsky::actor::ViewerState<'a>>, 708 #[serde(skip_serializing_if = "std::option::Option::is_none")] 709 #[serde(borrow)] 710 pub website: std::option::Option<jacquard_common::types::string::Uri<'a>>, 711} 712 713impl jacquard_common::IntoStatic for ProfileViewDetailed<'_> { 714 type Output = ProfileViewDetailed<'static>; 715 fn into_static(self) -> Self::Output { 716 ProfileViewDetailed { 717 associated: self.associated.into_static(), 718 avatar: self.avatar.into_static(), 719 banner: self.banner.into_static(), 720 created_at: self.created_at.into_static(), 721 description: self.description.into_static(), 722 did: self.did.into_static(), 723 display_name: self.display_name.into_static(), 724 followers_count: self.followers_count.into_static(), 725 follows_count: self.follows_count.into_static(), 726 handle: self.handle.into_static(), 727 indexed_at: self.indexed_at.into_static(), 728 joined_via_starter_pack: self.joined_via_starter_pack.into_static(), 729 labels: self.labels.into_static(), 730 pinned_post: self.pinned_post.into_static(), 731 posts_count: self.posts_count.into_static(), 732 pronouns: self.pronouns.into_static(), 733 status: self.status.into_static(), 734 verification: self.verification.into_static(), 735 viewer: self.viewer.into_static(), 736 website: self.website.into_static(), 737 extra_data: self.extra_data.into_static(), 738 } 739 } 740} 741 742#[jacquard_derive::lexicon] 743#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 744#[serde(rename_all = "camelCase")] 745pub struct SavedFeed<'a> { 746 #[serde(borrow)] 747 pub id: jacquard_common::CowStr<'a>, 748 pub pinned: bool, 749 #[serde(borrow)] 750 pub r#type: jacquard_common::CowStr<'a>, 751 #[serde(borrow)] 752 pub value: jacquard_common::CowStr<'a>, 753} 754 755impl jacquard_common::IntoStatic for SavedFeed<'_> { 756 type Output = SavedFeed<'static>; 757 fn into_static(self) -> Self::Output { 758 SavedFeed { 759 id: self.id.into_static(), 760 pinned: self.pinned.into_static(), 761 r#type: self.r#type.into_static(), 762 value: self.value.into_static(), 763 extra_data: self.extra_data.into_static(), 764 } 765 } 766} 767 768#[jacquard_derive::lexicon] 769#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 770#[serde(rename_all = "camelCase")] 771pub struct SavedFeedsPref<'a> { 772 #[serde(borrow)] 773 pub pinned: Vec<jacquard_common::types::string::AtUri<'a>>, 774 #[serde(borrow)] 775 pub saved: Vec<jacquard_common::types::string::AtUri<'a>>, 776 #[serde(skip_serializing_if = "std::option::Option::is_none")] 777 pub timeline_index: std::option::Option<i64>, 778} 779 780impl jacquard_common::IntoStatic for SavedFeedsPref<'_> { 781 type Output = SavedFeedsPref<'static>; 782 fn into_static(self) -> Self::Output { 783 SavedFeedsPref { 784 pinned: self.pinned.into_static(), 785 saved: self.saved.into_static(), 786 timeline_index: self.timeline_index.into_static(), 787 extra_data: self.extra_data.into_static(), 788 } 789 } 790} 791 792#[jacquard_derive::lexicon] 793#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 794#[serde(rename_all = "camelCase")] 795pub struct SavedFeedsPrefV2<'a> { 796 #[serde(borrow)] 797 pub items: Vec<crate::app_bsky::actor::SavedFeed<'a>>, 798} 799 800impl jacquard_common::IntoStatic for SavedFeedsPrefV2<'_> { 801 type Output = SavedFeedsPrefV2<'static>; 802 fn into_static(self) -> Self::Output { 803 SavedFeedsPrefV2 { 804 items: self.items.into_static(), 805 extra_data: self.extra_data.into_static(), 806 } 807 } 808} 809 810#[jacquard_derive::lexicon] 811#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 812#[serde(rename_all = "camelCase")] 813pub struct StatusView<'a> { 814 ///An optional embed associated with the status. 815 #[serde(skip_serializing_if = "std::option::Option::is_none")] 816 #[serde(borrow)] 817 pub embed: std::option::Option<StatusViewRecordEmbed<'a>>, 818 ///The date when this status will expire. The application might choose to no longer return the status after expiration. 819 #[serde(skip_serializing_if = "std::option::Option::is_none")] 820 pub expires_at: std::option::Option<jacquard_common::types::string::Datetime>, 821 ///True if the status is not expired, false if it is expired. Only present if expiration was set. 822 #[serde(skip_serializing_if = "std::option::Option::is_none")] 823 pub is_active: std::option::Option<bool>, 824 #[serde(borrow)] 825 pub record: jacquard_common::types::value::Data<'a>, 826 ///The status for the account. 827 #[serde(borrow)] 828 pub status: jacquard_common::CowStr<'a>, 829} 830 831#[jacquard_derive::open_union] 832#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 833#[serde(tag = "$type")] 834#[serde(bound(deserialize = "'de: 'a"))] 835pub enum StatusViewRecordEmbed<'a> { 836 #[serde(rename = "app.bsky.embed.external#view")] 837 ExternalView(Box<crate::app_bsky::embed::external::View<'a>>), 838} 839 840impl jacquard_common::IntoStatic for StatusViewRecordEmbed<'_> { 841 type Output = StatusViewRecordEmbed<'static>; 842 fn into_static(self) -> Self::Output { 843 match self { 844 StatusViewRecordEmbed::ExternalView(v) => { 845 StatusViewRecordEmbed::ExternalView(v.into_static()) 846 } 847 StatusViewRecordEmbed::Unknown(v) => { 848 StatusViewRecordEmbed::Unknown(v.into_static()) 849 } 850 } 851 } 852} 853 854impl jacquard_common::IntoStatic for StatusView<'_> { 855 type Output = StatusView<'static>; 856 fn into_static(self) -> Self::Output { 857 StatusView { 858 embed: self.embed.into_static(), 859 expires_at: self.expires_at.into_static(), 860 is_active: self.is_active.into_static(), 861 record: self.record.into_static(), 862 status: self.status.into_static(), 863 extra_data: self.extra_data.into_static(), 864 } 865 } 866} 867 868#[jacquard_derive::lexicon] 869#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 870#[serde(rename_all = "camelCase")] 871pub struct ThreadViewPref<'a> { 872 ///Show followed users at the top of all replies. 873 #[serde(skip_serializing_if = "std::option::Option::is_none")] 874 pub prioritize_followed_users: std::option::Option<bool>, 875 ///Sorting mode for threads. 876 #[serde(skip_serializing_if = "std::option::Option::is_none")] 877 #[serde(borrow)] 878 pub sort: std::option::Option<jacquard_common::CowStr<'a>>, 879} 880 881impl jacquard_common::IntoStatic for ThreadViewPref<'_> { 882 type Output = ThreadViewPref<'static>; 883 fn into_static(self) -> Self::Output { 884 ThreadViewPref { 885 prioritize_followed_users: self.prioritize_followed_users.into_static(), 886 sort: self.sort.into_static(), 887 extra_data: self.extra_data.into_static(), 888 } 889 } 890} 891 892///Preferences for how verified accounts appear in the app. 893#[jacquard_derive::lexicon] 894#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 895#[serde(rename_all = "camelCase")] 896pub struct VerificationPrefs<'a> { 897 ///Hide the blue check badges for verified accounts and trusted verifiers. 898 #[serde(skip_serializing_if = "std::option::Option::is_none")] 899 pub hide_badges: std::option::Option<bool>, 900} 901 902impl jacquard_common::IntoStatic for VerificationPrefs<'_> { 903 type Output = VerificationPrefs<'static>; 904 fn into_static(self) -> Self::Output { 905 VerificationPrefs { 906 hide_badges: self.hide_badges.into_static(), 907 extra_data: self.extra_data.into_static(), 908 } 909 } 910} 911 912///Represents the verification information about the user this object is attached to. 913#[jacquard_derive::lexicon] 914#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 915#[serde(rename_all = "camelCase")] 916pub struct VerificationState<'a> { 917 ///The user's status as a trusted verifier. 918 #[serde(borrow)] 919 pub trusted_verifier_status: jacquard_common::CowStr<'a>, 920 ///All verifications issued by trusted verifiers on behalf of this user. Verifications by untrusted verifiers are not included. 921 #[serde(borrow)] 922 pub verifications: Vec<crate::app_bsky::actor::VerificationView<'a>>, 923 ///The user's status as a verified account. 924 #[serde(borrow)] 925 pub verified_status: jacquard_common::CowStr<'a>, 926} 927 928impl jacquard_common::IntoStatic for VerificationState<'_> { 929 type Output = VerificationState<'static>; 930 fn into_static(self) -> Self::Output { 931 VerificationState { 932 trusted_verifier_status: self.trusted_verifier_status.into_static(), 933 verifications: self.verifications.into_static(), 934 verified_status: self.verified_status.into_static(), 935 extra_data: self.extra_data.into_static(), 936 } 937 } 938} 939 940///An individual verification for an associated subject. 941#[jacquard_derive::lexicon] 942#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 943#[serde(rename_all = "camelCase")] 944pub struct VerificationView<'a> { 945 ///Timestamp when the verification was created. 946 pub created_at: jacquard_common::types::string::Datetime, 947 ///True if the verification passes validation, otherwise false. 948 pub is_valid: bool, 949 ///The user who issued this verification. 950 #[serde(borrow)] 951 pub issuer: jacquard_common::types::string::Did<'a>, 952 ///The AT-URI of the verification record. 953 #[serde(borrow)] 954 pub uri: jacquard_common::types::string::AtUri<'a>, 955} 956 957impl jacquard_common::IntoStatic for VerificationView<'_> { 958 type Output = VerificationView<'static>; 959 fn into_static(self) -> Self::Output { 960 VerificationView { 961 created_at: self.created_at.into_static(), 962 is_valid: self.is_valid.into_static(), 963 issuer: self.issuer.into_static(), 964 uri: self.uri.into_static(), 965 extra_data: self.extra_data.into_static(), 966 } 967 } 968} 969 970///Metadata about the requesting account's relationship with the subject account. Only has meaningful content for authed requests. 971#[jacquard_derive::lexicon] 972#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)] 973#[serde(rename_all = "camelCase")] 974pub struct ViewerState<'a> { 975 ///This property is present only in selected cases, as an optimization. 976 #[serde(skip_serializing_if = "std::option::Option::is_none")] 977 #[serde(borrow)] 978 pub activity_subscription: std::option::Option< 979 crate::app_bsky::notification::ActivitySubscription<'a>, 980 >, 981 #[serde(skip_serializing_if = "std::option::Option::is_none")] 982 pub blocked_by: std::option::Option<bool>, 983 #[serde(skip_serializing_if = "std::option::Option::is_none")] 984 #[serde(borrow)] 985 pub blocking: std::option::Option<jacquard_common::types::string::AtUri<'a>>, 986 #[serde(skip_serializing_if = "std::option::Option::is_none")] 987 #[serde(borrow)] 988 pub blocking_by_list: std::option::Option<crate::app_bsky::graph::ListViewBasic<'a>>, 989 #[serde(skip_serializing_if = "std::option::Option::is_none")] 990 #[serde(borrow)] 991 pub followed_by: std::option::Option<jacquard_common::types::string::AtUri<'a>>, 992 #[serde(skip_serializing_if = "std::option::Option::is_none")] 993 #[serde(borrow)] 994 pub following: std::option::Option<jacquard_common::types::string::AtUri<'a>>, 995 ///This property is present only in selected cases, as an optimization. 996 #[serde(skip_serializing_if = "std::option::Option::is_none")] 997 #[serde(borrow)] 998 pub known_followers: std::option::Option<crate::app_bsky::actor::KnownFollowers<'a>>, 999 #[serde(skip_serializing_if = "std::option::Option::is_none")] 1000 pub muted: std::option::Option<bool>, 1001 #[serde(skip_serializing_if = "std::option::Option::is_none")] 1002 #[serde(borrow)] 1003 pub muted_by_list: std::option::Option<crate::app_bsky::graph::ListViewBasic<'a>>, 1004} 1005 1006impl jacquard_common::IntoStatic for ViewerState<'_> { 1007 type Output = ViewerState<'static>; 1008 fn into_static(self) -> Self::Output { 1009 ViewerState { 1010 activity_subscription: self.activity_subscription.into_static(), 1011 blocked_by: self.blocked_by.into_static(), 1012 blocking: self.blocking.into_static(), 1013 blocking_by_list: self.blocking_by_list.into_static(), 1014 followed_by: self.followed_by.into_static(), 1015 following: self.following.into_static(), 1016 known_followers: self.known_followers.into_static(), 1017 muted: self.muted.into_static(), 1018 muted_by_list: self.muted_by_list.into_static(), 1019 extra_data: self.extra_data.into_static(), 1020 } 1021 } 1022}