Skip to content

Latest commit

 

History

History
39 lines (33 loc) · 841 Bytes

File metadata and controls

39 lines (33 loc) · 841 Bytes

When deriving for enum like the following:

#[enum_derive(serde::Serialize)]
enum Enum<A, B> {
    A(A),
    B(B),
}

Code like this will be generated:

Note that it is a different implementation from #[derive(Serialize)].

enum Enum<A, B> {
    A(A),
    B(B),
}

impl<A, B> ::serde::ser::Serialize for Enum<A, B>
where
    A: ::serde::ser::Serialize,
    B: ::serde::ser::Serialize,
{
    #[inline]
    fn serialize<__S>(&self, serializer: __S) -> ::std::result::Result<__S::Ok, __S::Error>
    where
        __S: ::serde::ser::Serializer
    {
        match self {
            Enum::A(x) => ::serde::ser::Serialize::serialize(x, serializer),
            Enum::B(x) => ::serde::ser::Serialize::serialize(x, serializer),
        }
    }
}