use syn::{Generics, Ident};
use super::VariantDefinition;
#[derive(Debug, Clone)]
pub(crate) struct EnumDefinition {
pub(crate) name: Ident,
pub(crate) generics: Generics,
pub(crate) variants: Vec<VariantDefinition>,
}
impl EnumDefinition {
pub(crate) fn validate(&self) -> syn::Result<()> {
if self.variants.is_empty() {
return Err(syn::Error::new_spanned(
&self.name,
"error enum must have at least one variant",
));
}
for variant in &self.variants {
variant.validate()?;
}
Ok(())
}
}