#[macro_export] /// Create a function to forward a specific serialize call to the generic deserialize macro_rules! forward_to_deserialize { ($( $name:ident ( $( $arg:ident : $ty:ty ),* ); )*) => { $( forward_to_deserialize!{ func: $name ( $( $arg: $ty ),* ); } )* }; (func: deserialize_enum ( $( $arg:ident : $ty:ty ),* );) => { fn deserialize_enum( &mut self, $(_: $ty,)* _visitor: V, ) -> ::std::result::Result where V: ::serde::de::EnumVisitor { Err(::serde::de::Error::invalid_type(::serde::de::Type::Enum)) } }; (func: $name:ident ( $( $arg:ident : $ty:ty ),* );) => { #[inline] fn $name( &mut self, $(_: $ty,)* visitor: V, ) -> ::std::result::Result where V: ::serde::de::Visitor { self.deserialize(visitor) } }; }