airlang 0.23.0

Air is a minimalist and universal programming language.
Documentation
use super::FreeFn;
use super::comp::FreeComposite;
use crate::semantics::cfg::Cfg;
use crate::semantics::val::Val;

#[derive(Clone, PartialEq, Eq)]
pub struct FreeCompFunc {
    pub(crate) raw_input: bool,
    pub(crate) comp: FreeComposite,
}

impl FreeFn<Cfg, Val, Val> for FreeCompFunc {
    fn free_call(&self, cfg: &mut Cfg, input: Val) -> Val {
        FreeComposite::call(
            cfg,
            input,
            &mut self.comp.prelude.clone(),
            self.comp.input_name.clone(),
            self.comp.body.clone(),
        )
    }
}