A better Rust ATProto crate
1// @generated by jacquard-lexicon. DO NOT EDIT. 2// 3// Lexicon: sh.weaver.actor.profile 4// 5// This file was automatically generated from Lexicon schemas. 6// Any manual changes will be overwritten on the next regeneration. 7 8///A declaration of a Weaver account profile. 9#[jacquard_derive::lexicon] 10#[derive( 11 serde::Serialize, 12 serde::Deserialize, 13 Debug, 14 Clone, 15 PartialEq, 16 Eq, 17 jacquard_derive::IntoStatic 18)] 19#[serde(rename_all = "camelCase")] 20pub struct Profile<'a> { 21 ///Small image to be displayed next to posts from account. AKA, 'profile picture' 22 #[serde(skip_serializing_if = "std::option::Option::is_none")] 23 #[serde(borrow)] 24 pub avatar: std::option::Option<jacquard_common::types::blob::Blob<'a>>, 25 ///Include link to this account on Bluesky. 26 #[serde(skip_serializing_if = "std::option::Option::is_none")] 27 pub bluesky: std::option::Option<bool>, 28 #[serde(skip_serializing_if = "std::option::Option::is_none")] 29 pub created_at: std::option::Option<jacquard_common::types::string::Datetime>, 30 ///Free-form profile description text. 31 #[serde(skip_serializing_if = "std::option::Option::is_none")] 32 #[serde(borrow)] 33 pub description: std::option::Option<jacquard_common::CowStr<'a>>, 34 #[serde(skip_serializing_if = "std::option::Option::is_none")] 35 #[serde(borrow)] 36 pub display_name: std::option::Option<jacquard_common::CowStr<'a>>, 37 #[serde(skip_serializing_if = "std::option::Option::is_none")] 38 #[serde(borrow)] 39 pub links: std::option::Option<Vec<jacquard_common::types::string::Uri<'a>>>, 40 ///Free-form location text. 41 #[serde(skip_serializing_if = "std::option::Option::is_none")] 42 #[serde(borrow)] 43 pub location: std::option::Option<jacquard_common::CowStr<'a>>, 44 #[serde(skip_serializing_if = "std::option::Option::is_none")] 45 #[serde(borrow)] 46 pub pinned_post: std::option::Option< 47 crate::com_atproto::repo::strong_ref::StrongRef<'a>, 48 >, 49 ///Pronouns to use in user-generated content. 50 #[serde(skip_serializing_if = "std::option::Option::is_none")] 51 #[serde(borrow)] 52 pub pronouns: std::option::Option< 53 crate::sh_weaver::actor::profile::PronounsList<'a>, 54 >, 55 ///Include link to this account on Tangled. 56 #[serde(skip_serializing_if = "std::option::Option::is_none")] 57 pub tangled: std::option::Option<bool>, 58} 59 60/// Typed wrapper for GetRecord response with this collection's record type. 61#[derive( 62 serde::Serialize, 63 serde::Deserialize, 64 Debug, 65 Clone, 66 PartialEq, 67 Eq, 68 jacquard_derive::IntoStatic 69)] 70#[serde(rename_all = "camelCase")] 71pub struct ProfileGetRecordOutput<'a> { 72 #[serde(skip_serializing_if = "std::option::Option::is_none")] 73 #[serde(borrow)] 74 pub cid: std::option::Option<jacquard_common::types::string::Cid<'a>>, 75 #[serde(borrow)] 76 pub uri: jacquard_common::types::string::AtUri<'a>, 77 #[serde(borrow)] 78 pub value: Profile<'a>, 79} 80 81/// Marker type for deserializing records from this collection. 82pub struct ProfileRecord; 83impl jacquard_common::xrpc::XrpcResp for ProfileRecord { 84 const NSID: &'static str = "sh.weaver.actor.profile"; 85 const ENCODING: &'static str = "application/json"; 86 type Output<'de> = ProfileGetRecordOutput<'de>; 87 type Err<'de> = jacquard_common::types::collection::RecordError<'de>; 88} 89 90impl jacquard_common::types::collection::Collection for Profile<'_> { 91 const NSID: &'static str = "sh.weaver.actor.profile"; 92 type Record = ProfileRecord; 93} 94 95impl From<ProfileGetRecordOutput<'_>> for Profile<'_> { 96 fn from(output: ProfileGetRecordOutput<'_>) -> Self { 97 use jacquard_common::IntoStatic; 98 output.value.into_static() 99 } 100} 101 102pub type PronounsList<'a> = Vec<jacquard_common::CowStr<'a>>;