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)]
19#[serde(rename_all = "camelCase")]
20pub struct Publication<'a> {
21 #[serde(skip_serializing_if = "std::option::Option::is_none")]
22 #[serde(borrow)]
23 pub base_path: std::option::Option<jacquard_common::types::string::Uri<'a>>,
24 #[serde(skip_serializing_if = "std::option::Option::is_none")]
25 #[serde(borrow)]
26 pub description: std::option::Option<jacquard_common::CowStr<'a>>,
27 #[serde(skip_serializing_if = "std::option::Option::is_none")]
28 #[serde(borrow)]
29 pub icon: std::option::Option<jacquard_common::types::blob::Blob<'a>>,
30 #[serde(borrow)]
31 pub name: jacquard_common::CowStr<'a>,
32 #[serde(skip_serializing_if = "std::option::Option::is_none")]
33 #[serde(borrow)]
34 pub preferences: std::option::Option<
35 crate::pub_leaflet::publication::Preferences<'a>,
36 >,
37 #[serde(skip_serializing_if = "std::option::Option::is_none")]
38 #[serde(borrow)]
39 pub theme: std::option::Option<crate::pub_leaflet::publication::Theme<'a>>,
40}
41
42impl jacquard_common::types::collection::Collection for Publication<'_> {
43 const NSID: &'static str = "pub.leaflet.publication";
44}
45
46#[jacquard_derive::lexicon]
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 Preferences<'a> {
58 #[serde(skip_serializing_if = "std::option::Option::is_none")]
59 pub show_comments: std::option::Option<bool>,
60 #[serde(skip_serializing_if = "std::option::Option::is_none")]
61 pub show_in_discover: std::option::Option<bool>,
62}
63
64#[jacquard_derive::lexicon]
65#[derive(
66 serde::Serialize,
67 serde::Deserialize,
68 Debug,
69 Clone,
70 PartialEq,
71 Eq,
72 jacquard_derive::IntoStatic
73)]
74#[serde(rename_all = "camelCase")]
75pub struct Theme<'a> {
76 #[serde(skip_serializing_if = "std::option::Option::is_none")]
77 #[serde(borrow)]
78 pub accent_background: std::option::Option<ThemeRecordAccentBackground<'a>>,
79 #[serde(skip_serializing_if = "std::option::Option::is_none")]
80 #[serde(borrow)]
81 pub accent_text: std::option::Option<ThemeRecordAccentText<'a>>,
82 #[serde(skip_serializing_if = "std::option::Option::is_none")]
83 #[serde(borrow)]
84 pub background_color: std::option::Option<ThemeRecordBackgroundColor<'a>>,
85 #[serde(skip_serializing_if = "std::option::Option::is_none")]
86 #[serde(borrow)]
87 pub background_image: std::option::Option<
88 crate::pub_leaflet::theme::background_image::BackgroundImage<'a>,
89 >,
90 #[serde(skip_serializing_if = "std::option::Option::is_none")]
91 #[serde(borrow)]
92 pub page_background: std::option::Option<ThemeRecordPageBackground<'a>>,
93 #[serde(skip_serializing_if = "std::option::Option::is_none")]
94 #[serde(borrow)]
95 pub primary: std::option::Option<ThemeRecordPrimary<'a>>,
96 #[serde(skip_serializing_if = "std::option::Option::is_none")]
97 pub show_page_background: std::option::Option<bool>,
98}
99
100#[jacquard_derive::open_union]
101#[derive(
102 serde::Serialize,
103 serde::Deserialize,
104 Debug,
105 Clone,
106 PartialEq,
107 Eq,
108 jacquard_derive::IntoStatic
109)]
110#[serde(tag = "$type")]
111#[serde(bound(deserialize = "'de: 'a"))]
112pub enum ThemeRecordAccentBackground<'a> {
113 #[serde(rename = "pub.leaflet.theme.color#rgba")]
114 ColorRgba(Box<crate::pub_leaflet::theme::color::Rgba<'a>>),
115 #[serde(rename = "pub.leaflet.theme.color#rgb")]
116 ColorRgb(Box<crate::pub_leaflet::theme::color::Rgb<'a>>),
117}
118
119#[jacquard_derive::open_union]
120#[derive(
121 serde::Serialize,
122 serde::Deserialize,
123 Debug,
124 Clone,
125 PartialEq,
126 Eq,
127 jacquard_derive::IntoStatic
128)]
129#[serde(tag = "$type")]
130#[serde(bound(deserialize = "'de: 'a"))]
131pub enum ThemeRecordAccentText<'a> {
132 #[serde(rename = "pub.leaflet.theme.color#rgba")]
133 ColorRgba(Box<crate::pub_leaflet::theme::color::Rgba<'a>>),
134 #[serde(rename = "pub.leaflet.theme.color#rgb")]
135 ColorRgb(Box<crate::pub_leaflet::theme::color::Rgb<'a>>),
136}
137
138#[jacquard_derive::open_union]
139#[derive(
140 serde::Serialize,
141 serde::Deserialize,
142 Debug,
143 Clone,
144 PartialEq,
145 Eq,
146 jacquard_derive::IntoStatic
147)]
148#[serde(tag = "$type")]
149#[serde(bound(deserialize = "'de: 'a"))]
150pub enum ThemeRecordBackgroundColor<'a> {
151 #[serde(rename = "pub.leaflet.theme.color#rgba")]
152 ColorRgba(Box<crate::pub_leaflet::theme::color::Rgba<'a>>),
153 #[serde(rename = "pub.leaflet.theme.color#rgb")]
154 ColorRgb(Box<crate::pub_leaflet::theme::color::Rgb<'a>>),
155}
156
157#[jacquard_derive::open_union]
158#[derive(
159 serde::Serialize,
160 serde::Deserialize,
161 Debug,
162 Clone,
163 PartialEq,
164 Eq,
165 jacquard_derive::IntoStatic
166)]
167#[serde(tag = "$type")]
168#[serde(bound(deserialize = "'de: 'a"))]
169pub enum ThemeRecordPageBackground<'a> {
170 #[serde(rename = "pub.leaflet.theme.color#rgba")]
171 ColorRgba(Box<crate::pub_leaflet::theme::color::Rgba<'a>>),
172 #[serde(rename = "pub.leaflet.theme.color#rgb")]
173 ColorRgb(Box<crate::pub_leaflet::theme::color::Rgb<'a>>),
174}
175
176#[jacquard_derive::open_union]
177#[derive(
178 serde::Serialize,
179 serde::Deserialize,
180 Debug,
181 Clone,
182 PartialEq,
183 Eq,
184 jacquard_derive::IntoStatic
185)]
186#[serde(tag = "$type")]
187#[serde(bound(deserialize = "'de: 'a"))]
188pub enum ThemeRecordPrimary<'a> {
189 #[serde(rename = "pub.leaflet.theme.color#rgba")]
190 ColorRgba(Box<crate::pub_leaflet::theme::color::Rgba<'a>>),
191 #[serde(rename = "pub.leaflet.theme.color#rgb")]
192 ColorRgb(Box<crate::pub_leaflet::theme::color::Rgb<'a>>),
193}