use alloc::vec::Vec;
use syn::{Generics, Ident, Type};
use super::{
common::{FieldRef, Format, ImportRoot, InlineOptions, Transparent},
structure::FieldList,
};
#[derive(Clone, Debug, PartialEq, Eq, Hash)]
pub struct Enumeration {
pub inline_opts: Option<InlineOptions>,
pub root_import: Option<ImportRoot>,
pub name_ident: Ident,
pub generics: Generics,
pub variant_list: Vec<Variant>,
}
#[derive(Clone, Debug, PartialEq, Eq, Hash)]
pub enum Variant {
Struct {
format: Format,
source_field: Option<FieldRef>,
variant_name: Ident,
field_list: FieldList,
},
Unit {
format: Format,
variant_name: Ident,
},
Transparent {
transparent: Transparent,
variant_name: Ident,
field_list: FieldList,
},
Forward {
format: Format,
variant_name: Ident,
field_ref: FieldRef,
field_type: Type,
},
}