jacquard_api/chat_bsky/actor/
declaration.rs1#[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 Declaration<'a> {
22 #[serde(borrow)]
23 #[builder(into)]
24 pub allow_incoming: jacquard_common::CowStr<'a>,
25}
26
27impl<'a> Declaration<'a> {
28 pub fn uri(
29 uri: impl Into<jacquard_common::CowStr<'a>>,
30 ) -> Result<
31 jacquard_common::types::uri::RecordUri<'a, DeclarationRecord>,
32 jacquard_common::types::uri::UriError,
33 > {
34 jacquard_common::types::uri::RecordUri::try_from_uri(
35 jacquard_common::types::string::AtUri::new_cow(uri.into())?,
36 )
37 }
38}
39
40#[derive(
42 serde::Serialize,
43 serde::Deserialize,
44 Debug,
45 Clone,
46 PartialEq,
47 Eq,
48 jacquard_derive::IntoStatic
49)]
50#[serde(rename_all = "camelCase")]
51pub struct DeclarationGetRecordOutput<'a> {
52 #[serde(skip_serializing_if = "std::option::Option::is_none")]
53 #[serde(borrow)]
54 pub cid: std::option::Option<jacquard_common::types::string::Cid<'a>>,
55 #[serde(borrow)]
56 pub uri: jacquard_common::types::string::AtUri<'a>,
57 #[serde(borrow)]
58 pub value: Declaration<'a>,
59}
60
61impl From<DeclarationGetRecordOutput<'_>> for Declaration<'_> {
62 fn from(output: DeclarationGetRecordOutput<'_>) -> Self {
63 use jacquard_common::IntoStatic;
64 output.value.into_static()
65 }
66}
67
68impl jacquard_common::types::collection::Collection for Declaration<'_> {
69 const NSID: &'static str = "chat.bsky.actor.declaration";
70 type Record = DeclarationRecord;
71}
72
73#[derive(Debug, serde::Serialize, serde::Deserialize)]
75pub struct DeclarationRecord;
76impl jacquard_common::xrpc::XrpcResp for DeclarationRecord {
77 const NSID: &'static str = "chat.bsky.actor.declaration";
78 const ENCODING: &'static str = "application/json";
79 type Output<'de> = DeclarationGetRecordOutput<'de>;
80 type Err<'de> = jacquard_common::types::collection::RecordError<'de>;
81}
82
83impl jacquard_common::types::collection::Collection for DeclarationRecord {
84 const NSID: &'static str = "chat.bsky.actor.declaration";
85 type Record = DeclarationRecord;
86}