40 lines
1.0 KiB
Rust
40 lines
1.0 KiB
Rust
use crate::ast::NodeId;
|
|
use crate::ast::constructor::Constructor;
|
|
use crate::ast::field::Field;
|
|
use crate::ast::function::Function;
|
|
use crate::ast::generic_parameter::GenericParameter;
|
|
use crate::source_range::SourceRange;
|
|
use std::rc::Rc;
|
|
|
|
pub struct Class {
|
|
node_id: NodeId,
|
|
declared_name: Rc<str>,
|
|
declared_name_source_range: SourceRange,
|
|
generic_parameters: Vec<GenericParameter>,
|
|
constructor: Option<Constructor>,
|
|
fields: Vec<Field>,
|
|
functions: Vec<Function>,
|
|
}
|
|
|
|
impl Class {
|
|
pub fn new(
|
|
node_id: NodeId,
|
|
declared_name: &str,
|
|
declared_name_source_range: SourceRange,
|
|
generic_parameters: Vec<GenericParameter>,
|
|
constructor: Option<Constructor>,
|
|
fields: Vec<Field>,
|
|
functions: Vec<Function>,
|
|
) -> Self {
|
|
Self {
|
|
node_id,
|
|
declared_name: declared_name.into(),
|
|
declared_name_source_range,
|
|
generic_parameters,
|
|
constructor,
|
|
fields,
|
|
functions,
|
|
}
|
|
}
|
|
}
|