use crate::ir::FieldDefinition;
pub(crate) enum VariantFields {
Unit,
Tuple(syn::FieldsUnnamed),
Struct(Vec<FieldDefinition>),
}
pub(crate) struct VariantDefinition {
pub(crate) name: syn::Ident,
pub(crate) attrs: Vec<syn::Attribute>,
pub(crate) cfg_attrs: Vec<syn::Attribute>,
pub(crate) fields: VariantFields,
pub(crate) is_default: bool,
}
pub(crate) struct ConfigEnumDefinition {
pub(crate) enum_token: syn::Token![enum],
pub(crate) name: syn::Ident,
pub(crate) vis: syn::Visibility,
pub(crate) generics: syn::Generics,
pub(crate) attrs: Vec<syn::Attribute>,
pub(crate) derive_helper_attrs: Vec<syn::Attribute>,
pub(crate) variants: Vec<VariantDefinition>,
pub(crate) validator: Option<syn::Path>,
}