1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
#[macro_export] 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<V>( &mut self, $(_: $ty,)* _visitor: V, ) -> ::std::result::Result<V::Value, Self::Error> 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<V>( &mut self, $(_: $ty,)* visitor: V, ) -> ::std::result::Result<V::Value, Self::Error> where V: ::serde::de::Visitor { self.deserialize(visitor) } }; }