use crate::types::exp::Exp;
#[derive(Debug, Clone, PartialEq)]
pub struct FunctionItem<'a> {
pub(crate) name: String,
pub(crate) args: Vec<Exp<'a>>,
}
impl<'a> FunctionItem<'a> {
pub fn new(name: impl Into<String>, args: impl Into<Vec<Exp<'a>>>) -> Self {
Self {
name: name.into(),
args: args.into(),
}
}
pub fn name(&self) -> &str {
&self.name
}
pub fn args(&self) -> &[Exp<'_>] {
&self.args
}
pub fn into_args(self) -> Vec<Exp<'a>> {
self.args
}
}