A better Rust ATProto crate
at main 3.8 kB view raw
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 bon::Builder 19)] 20#[serde(rename_all = "camelCase")] 21pub struct Profile<'a> { 22 /// Small image to be displayed next to posts from account. AKA, 'profile picture' 23 #[serde(skip_serializing_if = "std::option::Option::is_none")] 24 #[builder(into)] 25 #[serde(borrow)] 26 pub avatar: Option<jacquard_common::types::blob::Blob<'a>>, 27 /// Include link to this account on Bluesky. 28 #[serde(skip_serializing_if = "std::option::Option::is_none")] 29 #[builder(into)] 30 pub bluesky: Option<bool>, 31 #[serde(skip_serializing_if = "std::option::Option::is_none")] 32 #[builder(into)] 33 pub created_at: Option<jacquard_common::types::string::Datetime>, 34 /// Free-form profile description text. 35 #[serde(skip_serializing_if = "std::option::Option::is_none")] 36 #[builder(into)] 37 #[serde(borrow)] 38 pub description: Option<jacquard_common::CowStr<'a>>, 39 #[serde(skip_serializing_if = "std::option::Option::is_none")] 40 #[builder(into)] 41 #[serde(borrow)] 42 pub display_name: Option<jacquard_common::CowStr<'a>>, 43 #[serde(skip_serializing_if = "std::option::Option::is_none")] 44 #[builder(into)] 45 #[serde(borrow)] 46 pub links: Option<Vec<jacquard_common::types::string::Uri<'a>>>, 47 /// Free-form location text. 48 #[serde(skip_serializing_if = "std::option::Option::is_none")] 49 #[builder(into)] 50 #[serde(borrow)] 51 pub location: Option<jacquard_common::CowStr<'a>>, 52 #[serde(skip_serializing_if = "std::option::Option::is_none")] 53 #[builder(into)] 54 #[serde(borrow)] 55 pub pinned_post: Option<crate::com_atproto::repo::strong_ref::StrongRef<'a>>, 56 /// Pronouns to use in user-generated content. 57 #[serde(skip_serializing_if = "std::option::Option::is_none")] 58 #[builder(into)] 59 #[serde(borrow)] 60 pub pronouns: Option<crate::sh_weaver::actor::profile::PronounsList<'a>>, 61 /// Include link to this account on Tangled. 62 #[serde(skip_serializing_if = "std::option::Option::is_none")] 63 #[builder(into)] 64 pub tangled: Option<bool>, 65} 66 67/// Typed wrapper for GetRecord response with this collection's record type. 68#[derive( 69 serde::Serialize, 70 serde::Deserialize, 71 Debug, 72 Clone, 73 PartialEq, 74 Eq, 75 jacquard_derive::IntoStatic 76)] 77#[serde(rename_all = "camelCase")] 78pub struct ProfileGetRecordOutput<'a> { 79 #[serde(skip_serializing_if = "std::option::Option::is_none")] 80 #[serde(borrow)] 81 pub cid: std::option::Option<jacquard_common::types::string::Cid<'a>>, 82 #[serde(borrow)] 83 pub uri: jacquard_common::types::string::AtUri<'a>, 84 #[serde(borrow)] 85 pub value: Profile<'a>, 86} 87 88/// Marker type for deserializing records from this collection. 89pub struct ProfileRecord; 90impl jacquard_common::xrpc::XrpcResp for ProfileRecord { 91 const NSID: &'static str = "sh.weaver.actor.profile"; 92 const ENCODING: &'static str = "application/json"; 93 type Output<'de> = ProfileGetRecordOutput<'de>; 94 type Err<'de> = jacquard_common::types::collection::RecordError<'de>; 95} 96 97impl jacquard_common::types::collection::Collection for Profile<'_> { 98 const NSID: &'static str = "sh.weaver.actor.profile"; 99 type Record = ProfileRecord; 100} 101 102impl From<ProfileGetRecordOutput<'_>> for Profile<'_> { 103 fn from(output: ProfileGetRecordOutput<'_>) -> Self { 104 use jacquard_common::IntoStatic; 105 output.value.into_static() 106 } 107} 108 109pub type PronounsList<'a> = Vec<jacquard_common::CowStr<'a>>;