use serde::Deserialize;
use serde::Serialize;
use mago_atom::Atom;
use mago_span::HasSpan;
use mago_span::Span;
use crate::metadata::attribute::AttributeMetadata;
use crate::metadata::flags::MetadataFlags;
use crate::ttype::atomic::TAtomic;
#[derive(Clone, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)]
#[non_exhaustive]
pub struct EnumCaseMetadata {
pub attributes: Vec<AttributeMetadata>,
pub name: Atom,
pub name_span: Span,
pub span: Span,
pub value_type: Option<TAtomic>,
pub flags: MetadataFlags,
}
impl EnumCaseMetadata {
#[inline]
#[must_use]
pub fn new(name: Atom, name_span: Span, span: Span, flags: MetadataFlags) -> Self {
Self { attributes: Vec::new(), name, name_span, span, flags, value_type: None }
}
}
impl HasSpan for EnumCaseMetadata {
fn span(&self) -> Span {
self.span
}
}