// @generated by jacquard-lexicon. DO NOT EDIT. // // Lexicon: pub.leaflet.blocks.code // // This file was automatically generated from Lexicon schemas. // Any manual changes will be overwritten on the next regeneration. #[allow(unused_imports)] use alloc::collections::BTreeMap; use jacquard_common::{BosStr, CowStr, DefaultStr, FromStaticStr}; #[allow(unused_imports)] use jacquard_common::deps::codegen::unicode_segmentation::UnicodeSegmentation; use jacquard_common::deps::smol_str::SmolStr; use jacquard_common::types::value::Data; use jacquard_derive::IntoStatic; use jacquard_lexicon::lexicon::LexiconDoc; use jacquard_lexicon::schema::LexiconSchema; #[allow(unused_imports)] use jacquard_lexicon::validation::{ConstraintError, ValidationPath}; use serde::{Deserialize, Serialize}; #[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic, Default)] #[serde( rename_all = "camelCase", bound(deserialize = "S: Deserialize<'de> + BosStr") )] pub struct Code { #[serde(skip_serializing_if = "Option::is_none")] pub language: Option, pub plaintext: S, #[serde(skip_serializing_if = "Option::is_none")] pub syntax_highlighting_theme: Option, #[serde( flatten, default, deserialize_with = "deserialize_code_extra_data", skip_serializing_if = "Option::is_none" )] pub extra_data: Option>>, } impl LexiconSchema for Code { fn nsid() -> &'static str { "pub.leaflet.blocks.code" } fn def_name() -> &'static str { "main" } fn lexicon_doc() -> LexiconDoc<'static> { lexicon_doc_pub_leaflet_blocks_code() } fn validate(&self) -> Result<(), ConstraintError> { Ok(()) } } fn deserialize_code_extra_data<'de, S, D>( deserializer: D, ) -> Result>>, D::Error> where S: BosStr + serde::Deserialize<'de>, D: serde::Deserializer<'de>, { let data = >> as serde::Deserialize<'de>>::deserialize(deserializer)?; Ok(data.filter(|extra_data| !extra_data.is_empty())) } fn lexicon_doc_pub_leaflet_blocks_code() -> LexiconDoc<'static> { use alloc::collections::BTreeMap; #[allow(unused_imports)] use jacquard_common::{CowStr, deps::smol_str::SmolStr, types::blob::MimeType}; use jacquard_lexicon::lexicon::*; LexiconDoc { lexicon: Lexicon::Lexicon1, id: CowStr::new_static("pub.leaflet.blocks.code"), defs: { let mut map = BTreeMap::new(); map.insert( SmolStr::new_static("main"), LexUserType::Object(LexObject { required: Some(vec![SmolStr::new_static("plaintext")]), properties: { #[allow(unused_mut)] let mut map = BTreeMap::new(); map.insert( SmolStr::new_static("language"), LexObjectProperty::String(LexString { ..Default::default() }), ); map.insert( SmolStr::new_static("plaintext"), LexObjectProperty::String(LexString { ..Default::default() }), ); map.insert( SmolStr::new_static("syntaxHighlightingTheme"), LexObjectProperty::String(LexString { ..Default::default() }), ); map }, ..Default::default() }), ); map }, ..Default::default() } }