use syn::{ Ident, Fields, FieldsUnnamed, Variant };
pub struct EnumVariant {
pub ident: Ident,
pub fields: Option<FieldsUnnamed>,
}
impl EnumVariant {
pub fn new(ident: Ident, fields: Option<FieldsUnnamed>) -> Self {
EnumVariant { ident, fields }
}
pub fn from_variant(variant: Variant) -> Self {
EnumVariant::new(
variant.ident,
match variant.fields {
Fields::Unit => None,
Fields::Named(_) => unreachable!(),
Fields::Unnamed(unnamed) => Some(unnamed),
})
}
}