A better Rust ATProto crate
at main 3.1 kB view raw
1// @generated by jacquard-lexicon. DO NOT EDIT. 2// 3// Lexicon: blog.pckt.post 4// 5// This file was automatically generated from Lexicon schemas. 6// Any manual changes will be overwritten on the next regeneration. 7 8#[jacquard_derive::lexicon] 9#[derive( 10 serde::Serialize, 11 serde::Deserialize, 12 Debug, 13 Clone, 14 PartialEq, 15 Eq, 16 jacquard_derive::IntoStatic, 17 bon::Builder 18)] 19#[serde(rename_all = "camelCase")] 20pub struct Post<'a> { 21 #[serde(borrow)] 22 pub blocks: jacquard_common::types::value::Data<'a>, 23 #[serde(borrow)] 24 pub blog: crate::com_atproto::repo::strong_ref::StrongRef<'a>, 25 #[serde(skip_serializing_if = "std::option::Option::is_none")] 26 #[builder(into)] 27 #[serde(borrow)] 28 pub body_plain: Option<jacquard_common::CowStr<'a>>, 29 #[serde(skip_serializing_if = "std::option::Option::is_none")] 30 #[builder(into)] 31 #[serde(borrow)] 32 pub cover: Option<jacquard_common::types::blob::Blob<'a>>, 33 #[serde(skip_serializing_if = "std::option::Option::is_none")] 34 #[builder(into)] 35 #[serde(borrow)] 36 pub images: Option<Vec<jacquard_common::types::blob::Blob<'a>>>, 37 #[serde(skip_serializing_if = "std::option::Option::is_none")] 38 #[builder(into)] 39 pub published_at: Option<jacquard_common::types::string::Datetime>, 40 #[serde(skip_serializing_if = "std::option::Option::is_none")] 41 #[builder(into)] 42 #[serde(borrow)] 43 pub tags: Option<Vec<jacquard_common::CowStr<'a>>>, 44 #[serde(borrow)] 45 #[builder(into)] 46 pub title: jacquard_common::CowStr<'a>, 47 #[serde(skip_serializing_if = "std::option::Option::is_none")] 48 #[builder(into)] 49 pub updated_at: Option<jacquard_common::types::string::Datetime>, 50 #[serde(borrow)] 51 pub url: jacquard_common::types::string::Uri<'a>, 52} 53 54/// Typed wrapper for GetRecord response with this collection's record type. 55#[derive( 56 serde::Serialize, 57 serde::Deserialize, 58 Debug, 59 Clone, 60 PartialEq, 61 Eq, 62 jacquard_derive::IntoStatic 63)] 64#[serde(rename_all = "camelCase")] 65pub struct PostGetRecordOutput<'a> { 66 #[serde(skip_serializing_if = "std::option::Option::is_none")] 67 #[serde(borrow)] 68 pub cid: std::option::Option<jacquard_common::types::string::Cid<'a>>, 69 #[serde(borrow)] 70 pub uri: jacquard_common::types::string::AtUri<'a>, 71 #[serde(borrow)] 72 pub value: Post<'a>, 73} 74 75/// Marker type for deserializing records from this collection. 76pub struct PostRecord; 77impl jacquard_common::xrpc::XrpcResp for PostRecord { 78 const NSID: &'static str = "blog.pckt.post"; 79 const ENCODING: &'static str = "application/json"; 80 type Output<'de> = PostGetRecordOutput<'de>; 81 type Err<'de> = jacquard_common::types::collection::RecordError<'de>; 82} 83 84impl jacquard_common::types::collection::Collection for Post<'_> { 85 const NSID: &'static str = "blog.pckt.post"; 86 type Record = PostRecord; 87} 88 89impl From<PostGetRecordOutput<'_>> for Post<'_> { 90 fn from(output: PostGetRecordOutput<'_>) -> Self { 91 use jacquard_common::IntoStatic; 92 output.value.into_static() 93 } 94}