A better Rust ATProto crate
1// @generated by jacquard-lexicon. DO NOT EDIT. 2// 3// Lexicon: blog.pckt.publication 4// 5// This file was automatically generated from Lexicon schemas. 6// Any manual changes will be overwritten on the next regeneration. 7 8///Record declaring a publication 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 Publication<'a> { 21 ///Base URL path for the publication ex https://blog.pckt.blog 22 #[serde(skip_serializing_if = "std::option::Option::is_none")] 23 #[serde(borrow)] 24 pub base_path: std::option::Option<jacquard_common::types::string::Uri<'a>>, 25 ///Timestamp when the publication was first created 26 pub created_at: jacquard_common::types::string::Datetime, 27 ///Publication description 28 #[serde(skip_serializing_if = "std::option::Option::is_none")] 29 #[serde(borrow)] 30 pub description: std::option::Option<jacquard_common::CowStr<'a>>, 31 ///Extension objects (open union) for additional features 32 #[serde(skip_serializing_if = "std::option::Option::is_none")] 33 #[serde(borrow)] 34 pub extensions: std::option::Option<Vec<jacquard_common::types::value::Data<'a>>>, 35 ///Publication icon/avatar image 36 #[serde(skip_serializing_if = "std::option::Option::is_none")] 37 #[serde(borrow)] 38 pub icon: std::option::Option<jacquard_common::types::blob::Blob<'a>>, 39 ///Publication name/title 40 #[serde(borrow)] 41 pub name: jacquard_common::CowStr<'a>, 42 ///Theme configuration as an open union; accepts blog.pckt.theme and future types. 43 #[serde(skip_serializing_if = "std::option::Option::is_none")] 44 #[serde(borrow)] 45 pub theme: std::option::Option<crate::blog_pckt::theme::Theme<'a>>, 46 ///Timestamp when the publication was last updated (optional) 47 #[serde(skip_serializing_if = "std::option::Option::is_none")] 48 pub updated_at: std::option::Option<jacquard_common::types::string::Datetime>, 49} 50 51/// Typed wrapper for GetRecord response with this collection's record type. 52#[derive( 53 serde::Serialize, 54 serde::Deserialize, 55 Debug, 56 Clone, 57 PartialEq, 58 Eq, 59 jacquard_derive::IntoStatic 60)] 61#[serde(rename_all = "camelCase")] 62pub struct PublicationGetRecordOutput<'a> { 63 #[serde(skip_serializing_if = "std::option::Option::is_none")] 64 #[serde(borrow)] 65 pub cid: std::option::Option<jacquard_common::types::string::Cid<'a>>, 66 #[serde(borrow)] 67 pub uri: jacquard_common::types::string::AtUri<'a>, 68 #[serde(borrow)] 69 pub value: Publication<'a>, 70} 71 72/// Marker type for deserializing records from this collection. 73pub struct PublicationRecord; 74impl jacquard_common::xrpc::XrpcResp for PublicationRecord { 75 const NSID: &'static str = "blog.pckt.publication"; 76 const ENCODING: &'static str = "application/json"; 77 type Output<'de> = PublicationGetRecordOutput<'de>; 78 type Err<'de> = jacquard_common::types::collection::RecordError<'de>; 79} 80 81impl jacquard_common::types::collection::Collection for Publication<'_> { 82 const NSID: &'static str = "blog.pckt.publication"; 83 type Record = PublicationRecord; 84} 85 86impl From<PublicationGetRecordOutput<'_>> for Publication<'_> { 87 fn from(output: PublicationGetRecordOutput<'_>) -> Self { 88 use jacquard_common::IntoStatic; 89 output.value.into_static() 90 } 91}