pub mod arena_eval;
pub mod stack_machine_eval;
pub use crate::recursive_tree::{arena_eval::ArenaIndex, stack_machine_eval::StackMarker};
pub struct RecursiveTree<Wrapped, Index> {
elems: Vec<Wrapped>,
_underlying: std::marker::PhantomData<Index>,
}
impl<'a, F, U> RecursiveTree<F, U> {
pub fn as_ref(&'a self) -> RecursiveTreeRef<'a, F, U> {
RecursiveTreeRef {
elems: &self.elems[..],
_underlying: self._underlying,
}
}
}
pub struct RecursiveTreeRef<'a, Wrapped, Index> {
elems: &'a [Wrapped],
_underlying: std::marker::PhantomData<Index>,
}