aboutsummaryrefslogtreecommitdiffstats
path: root/src/document_tree/element_categories.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/document_tree/element_categories.rs')
-rw-r--r--src/document_tree/element_categories.rs10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/document_tree/element_categories.rs b/src/document_tree/element_categories.rs
index bc2e347..3a14b16 100644
--- a/src/document_tree/element_categories.rs
+++ b/src/document_tree/element_categories.rs
@@ -1,5 +1,7 @@
use std::fmt::{self,Debug,Formatter};
+use serde::{Serialize,Serializer};
+
use super::elements::*;
pub trait HasChildren<C> {
@@ -31,6 +33,14 @@ macro_rules! synonymous_enum {( $name:ident { $( $entry:ident ),* } ) => (
}
}
+ impl Serialize for $name {
+ fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> where S: Serializer {
+ match self {
+ $( $name::$entry(ref inner) => inner.serialize(serializer), )*
+ }
+ }
+ }
+
$(
impl Into<$name> for $entry {
fn into(self) -> $name {