use crate::parser::ast::{
declaration::generics::{GenericConstArg, GenericTypeArg},
declaration::visibility::Visibility,
identifier::Identifier,
metadata::AstNodeMeta,
types::TypeInstantiation,
};
#[derive(Debug)]
pub struct ClassDeclaration<'src> {
pub meta: AstNodeMeta<'src>,
pub vis: Visibility<'src>,
pub name: Identifier<'src>,
pub generic_type_arguments: Vec<GenericTypeArg<'src>>,
pub generic_const_arguments: Vec<GenericConstArg<'src>>,
pub fields: Vec<ClassField<'src>>,
}
#[derive(Debug)]
pub struct ClassField<'src> {
pub meta: AstNodeMeta<'src>,
pub vis: Visibility<'src>,
pub mutable: bool,
pub ty: TypeInstantiation<'src>,
}