A better Rust ATProto crate
at main 7.2 kB view raw
1// @generated by jacquard-lexicon. DO NOT EDIT. 2// 3// Lexicon: pub.leaflet.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 bon::Builder 19)] 20#[serde(rename_all = "camelCase")] 21pub struct Publication<'a> { 22 #[serde(skip_serializing_if = "std::option::Option::is_none")] 23 #[builder(into)] 24 #[serde(borrow)] 25 pub base_path: Option<jacquard_common::types::string::Uri<'a>>, 26 #[serde(skip_serializing_if = "std::option::Option::is_none")] 27 #[builder(into)] 28 #[serde(borrow)] 29 pub description: Option<jacquard_common::CowStr<'a>>, 30 #[serde(skip_serializing_if = "std::option::Option::is_none")] 31 #[builder(into)] 32 #[serde(borrow)] 33 pub icon: Option<jacquard_common::types::blob::Blob<'a>>, 34 #[serde(borrow)] 35 #[builder(into)] 36 pub name: jacquard_common::CowStr<'a>, 37 #[serde(skip_serializing_if = "std::option::Option::is_none")] 38 #[builder(into)] 39 #[serde(borrow)] 40 pub preferences: Option<crate::pub_leaflet::publication::Preferences<'a>>, 41 #[serde(skip_serializing_if = "std::option::Option::is_none")] 42 #[builder(into)] 43 #[serde(borrow)] 44 pub theme: Option<crate::pub_leaflet::publication::Theme<'a>>, 45} 46 47/// Typed wrapper for GetRecord response with this collection's record type. 48#[derive( 49 serde::Serialize, 50 serde::Deserialize, 51 Debug, 52 Clone, 53 PartialEq, 54 Eq, 55 jacquard_derive::IntoStatic 56)] 57#[serde(rename_all = "camelCase")] 58pub struct PublicationGetRecordOutput<'a> { 59 #[serde(skip_serializing_if = "std::option::Option::is_none")] 60 #[serde(borrow)] 61 pub cid: std::option::Option<jacquard_common::types::string::Cid<'a>>, 62 #[serde(borrow)] 63 pub uri: jacquard_common::types::string::AtUri<'a>, 64 #[serde(borrow)] 65 pub value: Publication<'a>, 66} 67 68/// Marker type for deserializing records from this collection. 69pub struct PublicationRecord; 70impl jacquard_common::xrpc::XrpcResp for PublicationRecord { 71 const NSID: &'static str = "pub.leaflet.publication"; 72 const ENCODING: &'static str = "application/json"; 73 type Output<'de> = PublicationGetRecordOutput<'de>; 74 type Err<'de> = jacquard_common::types::collection::RecordError<'de>; 75} 76 77impl jacquard_common::types::collection::Collection for Publication<'_> { 78 const NSID: &'static str = "pub.leaflet.publication"; 79 type Record = PublicationRecord; 80} 81 82impl From<PublicationGetRecordOutput<'_>> for Publication<'_> { 83 fn from(output: PublicationGetRecordOutput<'_>) -> Self { 84 use jacquard_common::IntoStatic; 85 output.value.into_static() 86 } 87} 88 89#[jacquard_derive::lexicon] 90#[derive( 91 serde::Serialize, 92 serde::Deserialize, 93 Debug, 94 Clone, 95 PartialEq, 96 Eq, 97 jacquard_derive::IntoStatic, 98 Default 99)] 100#[serde(rename_all = "camelCase")] 101pub struct Preferences<'a> { 102 #[serde(skip_serializing_if = "std::option::Option::is_none")] 103 pub show_comments: std::option::Option<bool>, 104 #[serde(skip_serializing_if = "std::option::Option::is_none")] 105 pub show_in_discover: std::option::Option<bool>, 106} 107 108#[jacquard_derive::lexicon] 109#[derive( 110 serde::Serialize, 111 serde::Deserialize, 112 Debug, 113 Clone, 114 PartialEq, 115 Eq, 116 jacquard_derive::IntoStatic, 117 Default 118)] 119#[serde(rename_all = "camelCase")] 120pub struct Theme<'a> { 121 #[serde(skip_serializing_if = "std::option::Option::is_none")] 122 #[serde(borrow)] 123 pub accent_background: std::option::Option<ThemeAccentBackground<'a>>, 124 #[serde(skip_serializing_if = "std::option::Option::is_none")] 125 #[serde(borrow)] 126 pub accent_text: std::option::Option<ThemeAccentText<'a>>, 127 #[serde(skip_serializing_if = "std::option::Option::is_none")] 128 #[serde(borrow)] 129 pub background_color: std::option::Option<ThemeBackgroundColor<'a>>, 130 #[serde(skip_serializing_if = "std::option::Option::is_none")] 131 #[serde(borrow)] 132 pub background_image: std::option::Option< 133 crate::pub_leaflet::theme::background_image::BackgroundImage<'a>, 134 >, 135 #[serde(skip_serializing_if = "std::option::Option::is_none")] 136 #[serde(borrow)] 137 pub page_background: std::option::Option<ThemePageBackground<'a>>, 138 #[serde(skip_serializing_if = "std::option::Option::is_none")] 139 #[serde(borrow)] 140 pub primary: std::option::Option<ThemePrimary<'a>>, 141 #[serde(skip_serializing_if = "std::option::Option::is_none")] 142 pub show_page_background: std::option::Option<bool>, 143} 144 145#[jacquard_derive::open_union] 146#[derive( 147 serde::Serialize, 148 serde::Deserialize, 149 Debug, 150 Clone, 151 PartialEq, 152 Eq, 153 jacquard_derive::IntoStatic 154)] 155#[serde(tag = "$type")] 156#[serde(bound(deserialize = "'de: 'a"))] 157pub enum ThemeAccentBackground<'a> { 158 #[serde(rename = "pub.leaflet.theme.color#rgba")] 159 ColorRgba(Box<crate::pub_leaflet::theme::color::Rgba<'a>>), 160 #[serde(rename = "pub.leaflet.theme.color#rgb")] 161 ColorRgb(Box<crate::pub_leaflet::theme::color::Rgb<'a>>), 162} 163 164#[jacquard_derive::open_union] 165#[derive( 166 serde::Serialize, 167 serde::Deserialize, 168 Debug, 169 Clone, 170 PartialEq, 171 Eq, 172 jacquard_derive::IntoStatic 173)] 174#[serde(tag = "$type")] 175#[serde(bound(deserialize = "'de: 'a"))] 176pub enum ThemeAccentText<'a> { 177 #[serde(rename = "pub.leaflet.theme.color#rgba")] 178 ColorRgba(Box<crate::pub_leaflet::theme::color::Rgba<'a>>), 179 #[serde(rename = "pub.leaflet.theme.color#rgb")] 180 ColorRgb(Box<crate::pub_leaflet::theme::color::Rgb<'a>>), 181} 182 183#[jacquard_derive::open_union] 184#[derive( 185 serde::Serialize, 186 serde::Deserialize, 187 Debug, 188 Clone, 189 PartialEq, 190 Eq, 191 jacquard_derive::IntoStatic 192)] 193#[serde(tag = "$type")] 194#[serde(bound(deserialize = "'de: 'a"))] 195pub enum ThemeBackgroundColor<'a> { 196 #[serde(rename = "pub.leaflet.theme.color#rgba")] 197 ColorRgba(Box<crate::pub_leaflet::theme::color::Rgba<'a>>), 198 #[serde(rename = "pub.leaflet.theme.color#rgb")] 199 ColorRgb(Box<crate::pub_leaflet::theme::color::Rgb<'a>>), 200} 201 202#[jacquard_derive::open_union] 203#[derive( 204 serde::Serialize, 205 serde::Deserialize, 206 Debug, 207 Clone, 208 PartialEq, 209 Eq, 210 jacquard_derive::IntoStatic 211)] 212#[serde(tag = "$type")] 213#[serde(bound(deserialize = "'de: 'a"))] 214pub enum ThemePageBackground<'a> { 215 #[serde(rename = "pub.leaflet.theme.color#rgba")] 216 ColorRgba(Box<crate::pub_leaflet::theme::color::Rgba<'a>>), 217 #[serde(rename = "pub.leaflet.theme.color#rgb")] 218 ColorRgb(Box<crate::pub_leaflet::theme::color::Rgb<'a>>), 219} 220 221#[jacquard_derive::open_union] 222#[derive( 223 serde::Serialize, 224 serde::Deserialize, 225 Debug, 226 Clone, 227 PartialEq, 228 Eq, 229 jacquard_derive::IntoStatic 230)] 231#[serde(tag = "$type")] 232#[serde(bound(deserialize = "'de: 'a"))] 233pub enum ThemePrimary<'a> { 234 #[serde(rename = "pub.leaflet.theme.color#rgba")] 235 ColorRgba(Box<crate::pub_leaflet::theme::color::Rgba<'a>>), 236 #[serde(rename = "pub.leaflet.theme.color#rgb")] 237 ColorRgb(Box<crate::pub_leaflet::theme::color::Rgb<'a>>), 238}