use crate::Span;
use crate::SpannedString;
#[derive(Clone, Debug)]
pub struct FunctionName {
pub names: Vec<SpannedString>,
pub colon: Option<SpannedString>,
pub span: Span,
}
impl FunctionName {
pub fn new(names: Vec<SpannedString>, colon: Option<SpannedString>, span: Span) -> Self {
Self { names, colon, span }
}
pub fn span(&self) -> Span {
self.span
}
}
#[derive(Clone, Debug)]
pub struct StmtFunctionDefinition {
pub name: FunctionName,
pub body: crate::expression::ExprFunction,
pub span: Span,
}
impl StmtFunctionDefinition {
pub fn new(name: FunctionName, body: crate::expression::ExprFunction, span: Span) -> Self {
Self { name, body, span }
}
pub fn span(&self) -> Span {
self.span
}
}
#[derive(Clone, Debug)]
pub struct StmtFunctionDefinitionLocal {
pub name: SpannedString,
pub body: crate::expression::ExprFunction,
pub span: Span,
}
impl StmtFunctionDefinitionLocal {
pub fn new(name: SpannedString, body: crate::expression::ExprFunction, span: Span) -> Self {
Self { name, body, span }
}
pub fn span(&self) -> Span {
self.span
}
}