mod impls;
mod traits;
use non_empty_vec::NonEmpty;
use serde::Deserialize;
use serde::Serialize;
#[derive(Debug, PartialEq, Eq, Clone, Serialize, Deserialize)]
pub enum LambdaAST<'input> {
Functor(Functor),
#[serde(borrow)]
ValuePath(NonEmpty<ValueAccessor<'input>>),
}
#[derive(Debug, PartialEq, Eq, Clone, Copy, Serialize, Deserialize)]
pub enum ValueAccessor<'input> {
ArrayAccess { idx: u32 },
FieldAccessByName { field_name: &'input str },
FieldAccessByScalar { scalar_name: &'input str },
Error,
}
#[derive(Debug, PartialEq, Eq, Clone, Copy, Serialize, Deserialize)]
pub enum Functor {
Length,
}