aboutsummaryrefslogtreecommitdiffstats
path: root/src/document_tree/elements.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/document_tree/elements.rs')
-rw-r--r--src/document_tree/elements.rs12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/document_tree/elements.rs b/src/document_tree/elements.rs
index 52b1f5b..fe5a498 100644
--- a/src/document_tree/elements.rs
+++ b/src/document_tree/elements.rs
@@ -1,7 +1,7 @@
use serde_derive::Serialize;
use crate::target;
-use super::attribute_types::{ID,NameToken};
+use super::attribute_types::{CanBeEmpty,ID,NameToken};
use super::extra_attributes::{self,ExtraAttributes};
use super::element_categories::*;
@@ -28,9 +28,13 @@ pub trait Element {
#[derive(Debug,Default,PartialEq,Serialize)]
pub struct CommonAttributes {
- ids: Vec<ID>,
- names: Vec<NameToken>,
- source: Option<target::Target>,
+ #[serde(skip_serializing_if = "CanBeEmpty::is_empty")]
+ ids: Vec<ID>,
+ #[serde(skip_serializing_if = "CanBeEmpty::is_empty")]
+ names: Vec<NameToken>,
+ #[serde(skip_serializing_if = "CanBeEmpty::is_empty")]
+ source: Option<target::Target>,
+ #[serde(skip_serializing_if = "CanBeEmpty::is_empty")]
classes: Vec<String>,
//TODO: dupnames
}