diff options
Diffstat (limited to 'src/document_tree/element_categories.rs')
| -rw-r--r-- | src/document_tree/element_categories.rs | 10 |
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 { |
