fn derive_variant_for_enum( ident: Ident, generics: Generics, data_enum: DataEnum, mode: EnumMode, ) -> Result<TokenStream>