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)]
18#[serde(rename_all = "camelCase")]
19pub struct Post<'a> {
20 #[serde(borrow)]
21 pub blocks: jacquard_common::types::value::Data<'a>,
22 #[serde(borrow)]
23 pub blog: crate::com_atproto::repo::strong_ref::StrongRef<'a>,
24 #[serde(skip_serializing_if = "std::option::Option::is_none")]
25 #[serde(borrow)]
26 pub body_plain: std::option::Option<jacquard_common::CowStr<'a>>,
27 #[serde(skip_serializing_if = "std::option::Option::is_none")]
28 #[serde(borrow)]
29 pub cover: std::option::Option<jacquard_common::types::blob::Blob<'a>>,
30 #[serde(skip_serializing_if = "std::option::Option::is_none")]
31 #[serde(borrow)]
32 pub images: std::option::Option<Vec<jacquard_common::types::blob::Blob<'a>>>,
33 #[serde(skip_serializing_if = "std::option::Option::is_none")]
34 pub published_at: std::option::Option<jacquard_common::types::string::Datetime>,
35 #[serde(skip_serializing_if = "std::option::Option::is_none")]
36 #[serde(borrow)]
37 pub tags: std::option::Option<Vec<jacquard_common::CowStr<'a>>>,
38 #[serde(borrow)]
39 pub title: jacquard_common::CowStr<'a>,
40 #[serde(skip_serializing_if = "std::option::Option::is_none")]
41 pub updated_at: std::option::Option<jacquard_common::types::string::Datetime>,
42 #[serde(borrow)]
43 pub url: jacquard_common::types::string::Uri<'a>,
44}
45
46/// Typed wrapper for GetRecord response with this collection's record type.
47#[derive(
48 serde::Serialize,
49 serde::Deserialize,
50 Debug,
51 Clone,
52 PartialEq,
53 Eq,
54 jacquard_derive::IntoStatic
55)]
56#[serde(rename_all = "camelCase")]
57pub struct PostGetRecordOutput<'a> {
58 #[serde(skip_serializing_if = "std::option::Option::is_none")]
59 #[serde(borrow)]
60 pub cid: std::option::Option<jacquard_common::types::string::Cid<'a>>,
61 #[serde(borrow)]
62 pub uri: jacquard_common::types::string::AtUri<'a>,
63 #[serde(borrow)]
64 pub value: Post<'a>,
65}
66
67/// Marker type for deserializing records from this collection.
68pub struct PostRecord;
69impl jacquard_common::xrpc::XrpcResp for PostRecord {
70 const NSID: &'static str = "blog.pckt.post";
71 const ENCODING: &'static str = "application/json";
72 type Output<'de> = PostGetRecordOutput<'de>;
73 type Err<'de> = jacquard_common::types::collection::RecordError<'de>;
74}
75
76impl jacquard_common::types::collection::Collection for Post<'_> {
77 const NSID: &'static str = "blog.pckt.post";
78 type Record = PostRecord;
79}
80
81impl From<PostGetRecordOutput<'_>> for Post<'_> {
82 fn from(output: PostGetRecordOutput<'_>) -> Self {
83 use jacquard_common::IntoStatic;
84 output.value.into_static()
85 }
86}