jacquard_api/pub_leaflet/blocks/
header.rs1#[jacquard_derive::lexicon]
9#[derive(
10 serde::Serialize,
11 serde::Deserialize,
12 Debug,
13 Clone,
14 PartialEq,
15 Eq,
16 jacquard_derive::IntoStatic,
17 Default
18)]
19#[serde(rename_all = "camelCase")]
20pub struct Header<'a> {
21 #[serde(skip_serializing_if = "std::option::Option::is_none")]
22 #[serde(borrow)]
23 pub facets: std::option::Option<Vec<crate::pub_leaflet::richtext::facet::Facet<'a>>>,
24 #[serde(skip_serializing_if = "std::option::Option::is_none")]
25 pub level: std::option::Option<i64>,
26 #[serde(borrow)]
27 pub plaintext: jacquard_common::CowStr<'a>,
28}
29
30fn lexicon_doc_pub_leaflet_blocks_header() -> ::jacquard_lexicon::lexicon::LexiconDoc<
31 'static,
32> {
33 ::jacquard_lexicon::lexicon::LexiconDoc {
34 lexicon: ::jacquard_lexicon::lexicon::Lexicon::Lexicon1,
35 id: ::jacquard_common::CowStr::new_static("pub.leaflet.blocks.header"),
36 revision: None,
37 description: None,
38 defs: {
39 let mut map = ::std::collections::BTreeMap::new();
40 map.insert(
41 ::jacquard_common::smol_str::SmolStr::new_static("main"),
42 ::jacquard_lexicon::lexicon::LexUserType::Object(::jacquard_lexicon::lexicon::LexObject {
43 description: None,
44 required: Some(
45 vec![
46 ::jacquard_common::smol_str::SmolStr::new_static("plaintext")
47 ],
48 ),
49 nullable: None,
50 properties: {
51 #[allow(unused_mut)]
52 let mut map = ::std::collections::BTreeMap::new();
53 map.insert(
54 ::jacquard_common::smol_str::SmolStr::new_static("facets"),
55 ::jacquard_lexicon::lexicon::LexObjectProperty::Array(::jacquard_lexicon::lexicon::LexArray {
56 description: None,
57 items: ::jacquard_lexicon::lexicon::LexArrayItem::Ref(::jacquard_lexicon::lexicon::LexRef {
58 description: None,
59 r#ref: ::jacquard_common::CowStr::new_static(
60 "pub.leaflet.richtext.facet",
61 ),
62 }),
63 min_length: None,
64 max_length: None,
65 }),
66 );
67 map.insert(
68 ::jacquard_common::smol_str::SmolStr::new_static("level"),
69 ::jacquard_lexicon::lexicon::LexObjectProperty::Integer(::jacquard_lexicon::lexicon::LexInteger {
70 description: None,
71 default: None,
72 minimum: Some(1i64),
73 maximum: Some(6i64),
74 r#enum: None,
75 r#const: None,
76 }),
77 );
78 map.insert(
79 ::jacquard_common::smol_str::SmolStr::new_static(
80 "plaintext",
81 ),
82 ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
83 description: None,
84 format: None,
85 default: None,
86 min_length: None,
87 max_length: None,
88 min_graphemes: None,
89 max_graphemes: None,
90 r#enum: None,
91 r#const: None,
92 known_values: None,
93 }),
94 );
95 map
96 },
97 }),
98 );
99 map
100 },
101 }
102}
103
104impl<'a> ::jacquard_lexicon::schema::LexiconSchema for Header<'a> {
105 fn nsid() -> &'static str {
106 "pub.leaflet.blocks.header"
107 }
108 fn def_name() -> &'static str {
109 "main"
110 }
111 fn lexicon_doc() -> ::jacquard_lexicon::lexicon::LexiconDoc<'static> {
112 lexicon_doc_pub_leaflet_blocks_header()
113 }
114 fn validate(
115 &self,
116 ) -> ::std::result::Result<(), ::jacquard_lexicon::validation::ConstraintError> {
117 if let Some(ref value) = self.level {
118 if *value > 6i64 {
119 return Err(::jacquard_lexicon::validation::ConstraintError::Maximum {
120 path: ::jacquard_lexicon::validation::ValidationPath::from_field(
121 "level",
122 ),
123 max: 6i64,
124 actual: *value,
125 });
126 }
127 }
128 if let Some(ref value) = self.level {
129 if *value < 1i64 {
130 return Err(::jacquard_lexicon::validation::ConstraintError::Minimum {
131 path: ::jacquard_lexicon::validation::ValidationPath::from_field(
132 "level",
133 ),
134 min: 1i64,
135 actual: *value,
136 });
137 }
138 }
139 Ok(())
140 }
141}