jacquard_api/pub_leaflet/blocks/
header.rs

1// @generated by jacquard-lexicon. DO NOT EDIT.
2//
3// Lexicon: pub.leaflet.blocks.header
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    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}