pkenum_core 0.3.1

Core logic for pkenum.
Documentation
use syn::{ Ident, Fields, FieldsUnnamed, Variant };

/// A variant of an Rust enum.
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),
            })
    }
}