use super::node_idx::NodeIdx;
#[derive(derive_more::Deref)]
pub struct NodeRef<'arena, I, N, P, C>
where
I: NodeIdx
{
pub nidx: I,
#[deref]
pub data: &'arena N,
pub parents: &'arena [I],
pub pdata: &'arena [P],
pub children: &'arena [I],
pub cdata: &'arena [C],
}
#[derive(derive_more::Deref)]
pub struct NodeMut<'arena, I, N, P, C>
where
I: NodeIdx
{
pub nidx: I,
#[deref]
pub data: &'arena mut N,
pub parents: &'arena mut Vec<I>,
pub pdata: &'arena mut Vec<P>,
pub children: &'arena mut Vec<I>,
pub cdata: &'arena mut Vec<C>,
}