gctree 0.35.0

A library for cache-friendly, graph-like, arena-allocated datastructures.
Documentation
//!

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>,
}