use super::Expression;
use crate::{Span, SpannedString};
#[derive(Clone, Debug)]
pub struct FunctionCallArguments {
pub args: Vec<Expression>,
pub span: Span,
}
impl FunctionCallArguments {
pub fn new(args: Vec<Expression>, span: Span) -> Self {
Self { args, span }
}
pub fn span(&self) -> Span {
self.span
}
}
#[derive(Clone, Debug)]
pub struct ExprFunctionCall {
pub prefix: Box<Expression>,
pub method: Option<SpannedString>,
pub args: FunctionCallArguments,
pub span: Span,
}
impl ExprFunctionCall {
pub fn new(
prefix: Expression,
method: Option<SpannedString>,
args: FunctionCallArguments,
span: Span,
) -> Self {
Self {
prefix: Box::new(prefix),
method,
args,
span,
}
}
pub fn span(&self) -> Span {
self.span
}
}