pub struct CchView<'a> {
pub rank: &'a [u32],
pub elimination_tree_parent: &'a [u32],
pub up_first_out: &'a [u32],
pub up_head: &'a [u32],
pub down_first_out: &'a [u32],
pub down_head: &'a [u32],
pub down_to_up: &'a [u32],
}Expand description
Read-only view over the CCH fields needed for distance-matrix queries.
Holds borrowed slices — typically backed by mmap’d bundle pages
(zero-copy). The lifetime 'a is tied to the CchBundle owner.
Fields§
§rank: &'a [u32]rank[external_node_id] → CCH-internal node id. Length = node_count.
elimination_tree_parent: &'a [u32]elimination_tree_parent[v] → parent of v in the elimination tree,
or INVALID_ID for the root. Length = node_count.
up_first_out: &'a [u32]CSR offsets for upward arcs. Length = node_count + 1.
up_head: &'a [u32]Head endpoint of each upward arc. Length = cch_arc_count.
down_first_out: &'a [u32]CSR offsets for downward arcs. Length = node_count + 1.
down_head: &'a [u32]Head endpoint of each downward arc. Length = cch_arc_count.
down_to_up: &'a [u32]Maps each downward arc index to its corresponding upward arc index.
Length = cch_arc_count.
Implementations§
Source§impl CchView<'_>
impl CchView<'_>
Sourcepub fn node_count(&self) -> u32
pub fn node_count(&self) -> u32
Number of nodes. Derived from rank.len().
Sourcepub fn cch_arc_count(&self) -> u32
pub fn cch_arc_count(&self) -> u32
Number of CCH arcs (the contracted graph’s arc count, NOT the input
edge count). Derived from up_head.len().
Auto Trait Implementations§
impl<'a> Freeze for CchView<'a>
impl<'a> RefUnwindSafe for CchView<'a>
impl<'a> Send for CchView<'a>
impl<'a> Sync for CchView<'a>
impl<'a> Unpin for CchView<'a>
impl<'a> UnsafeUnpin for CchView<'a>
impl<'a> UnwindSafe for CchView<'a>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more