From eff5cdbf40913c7b7bf979473919b2613060e899 Mon Sep 17 00:00:00 2001 From: Tom Alexander Date: Fri, 29 Dec 2023 10:04:59 -0500 Subject: [PATCH] Flatten some structures. --- src/wasm/additional_property.rs | 2 ++ src/wasm/document.rs | 1 + src/wasm/paragraph.rs | 1 + src/wasm/section.rs | 1 + 4 files changed, 5 insertions(+) diff --git a/src/wasm/additional_property.rs b/src/wasm/additional_property.rs index 8011103d..9680c6ab 100644 --- a/src/wasm/additional_property.rs +++ b/src/wasm/additional_property.rs @@ -9,6 +9,7 @@ use crate::types::AffiliatedKeywordValue; use crate::types::AffiliatedKeywords; #[derive(Debug, Serialize)] +#[serde(untagged)] pub enum AdditionalPropertyValue<'s, 'p> { SingleString(&'s str), ListOfStrings(Vec<&'s str>), @@ -21,6 +22,7 @@ pub enum AdditionalPropertyValue<'s, 'p> { #[derive(Debug, Serialize, Default)] pub struct AdditionalProperties<'s, 'p> { + #[serde(flatten)] pub(crate) properties: HashMap>, } diff --git a/src/wasm/document.rs b/src/wasm/document.rs index e0ad38a2..df491572 100644 --- a/src/wasm/document.rs +++ b/src/wasm/document.rs @@ -18,6 +18,7 @@ use crate::wasm::to_wasm::ToWasmStandardProperties; #[serde(rename = "org-data")] pub struct WasmDocument<'s, 'p> { pub(crate) standard_properties: WasmStandardProperties, + #[serde(flatten)] pub(crate) additional_properties: AdditionalProperties<'s, 'p>, pub(crate) children: Vec>, pub(crate) category: Option<&'p str>, diff --git a/src/wasm/paragraph.rs b/src/wasm/paragraph.rs index e056b0bd..057c0508 100644 --- a/src/wasm/paragraph.rs +++ b/src/wasm/paragraph.rs @@ -16,6 +16,7 @@ use crate::wasm::WasmAstNode; #[serde(rename = "paragraph")] pub struct WasmParagraph<'s, 'p> { pub(crate) standard_properties: WasmStandardProperties, + #[serde(flatten)] pub(crate) additional_properties: AdditionalProperties<'s, 'p>, pub(crate) children: Vec>, } diff --git a/src/wasm/section.rs b/src/wasm/section.rs index 44620f54..641528fc 100644 --- a/src/wasm/section.rs +++ b/src/wasm/section.rs @@ -15,6 +15,7 @@ use crate::wasm::to_wasm::ToWasmStandardProperties; #[serde(rename = "section")] pub struct WasmSection<'s, 'p> { pub(crate) standard_properties: WasmStandardProperties, + #[serde(flatten)] pub(crate) additional_properties: AdditionalProperties<'s, 'p>, pub(crate) children: Vec>, }