diff options
| author | Philipp A | 2018-11-20 10:30:53 +0100 | 
|---|---|---|
| committer | Philipp A | 2018-11-20 10:32:16 +0100 | 
| commit | bb184822fc281e9fbfcd706a091be2e9d3ac38f4 (patch) | |
| tree | c6dde85ce51471ad644f22198416237d5dc420e3 /src/document_tree | |
| parent | 35a52a91ebcf08bcbc2c3b56ceba827d2ab042bb (diff) | |
| download | rust-rst-bb184822fc281e9fbfcd706a091be2e9d3ac38f4.tar.bz2 | |
prettified macro
Diffstat (limited to 'src/document_tree')
| -rw-r--r-- | src/document_tree/elements.rs | 22 | 
1 files changed, 11 insertions, 11 deletions
| diff --git a/src/document_tree/elements.rs b/src/document_tree/elements.rs index 900d1d4..a5519ce 100644 --- a/src/document_tree/elements.rs +++ b/src/document_tree/elements.rs @@ -79,7 +79,7 @@ macro_rules! impl_new {(  )}  macro_rules! impl_serialize { -	($name: ident, $extra: ident, $childtype: ident) => { +	($name: ident, $extra: ident, $children: ident) => {  		impl Serialize for $name {  			fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> where S: Serializer {  				let mut state = serializer.serialize_struct(stringify!($name), 6)?; @@ -87,44 +87,44 @@ macro_rules! impl_serialize {  				state.serialize_field("names", self.names())?;  				state.serialize_field("source", &self.source().as_ref().map(|uri| uri.to_string()))?;  				state.serialize_field("classes", self.classes())?; -				state.serialize_field("extra", &impl_cond__!($extra ? self.extra()))?; -				state.serialize_field("children", &impl_cond__!($childtype ? self.children()))?; +				state.serialize_field("extra",    &impl_cond!($extra    ? self.extra()   ))?; +				state.serialize_field("children", &impl_cond!($children ? self.children()))?;  				state.end()  			}  		}  	};  } -macro_rules! impl_cond__ { -	(__ ? $($b:tt)*) => { None::<Option<()>> }; -	($thing: ident ? $($b:tt)*) => { $($b)* }; +macro_rules! impl_cond { +	(false ? $($b:tt)*) => { () }; +	(true  ? $($b:tt)*) => { $($b)* };  }  macro_rules! impl_elem {  	($name:ident) => {  		impl_new!(#[derive(Default,Debug)] pub struct $name { common: CommonAttributes });  		impl_element!($name); -		impl_serialize!($name, __, __); +		impl_serialize!($name, false, false);  	};  	($name:ident; +) => {  		impl_new!(#[derive(Default,Debug)] pub struct $name { common: CommonAttributes, extra: extra_attributes::$name });  		impl_element!($name); impl_extra!($name); -		impl_serialize!($name, $name, __); +		impl_serialize!($name, true, false);  	};  	($name:ident; *) => { //same as above with no default  		impl_new!(#[derive(Debug)] pub struct $name { common: CommonAttributes, extra: extra_attributes::$name });  		impl_element!($name); impl_extra!($name); -		impl_serialize!($name, $name, __); +		impl_serialize!($name, true, false);  	};  	($name:ident, $childtype:ident) => {  		impl_new!(#[derive(Default,Debug)] pub struct $name { common: CommonAttributes, children: Vec<$childtype> });  		impl_element!($name); impl_children!($name, $childtype); -		impl_serialize!($name, __, $childtype); +		impl_serialize!($name, false, true);  	};  	($name:ident, $childtype:ident; +) => {  		impl_new!(#[derive(Default,Debug)] pub struct $name { common: CommonAttributes, extra: extra_attributes::$name, children: Vec<$childtype> });  		impl_element!($name); impl_extra!($name); impl_children!($name, $childtype); -		impl_serialize!($name, $name, $childtype); +		impl_serialize!($name, true, true);  	};  } | 
