pub struct CacheOptAdjacency { /* private fields */ }Expand description
Cache-optimized adjacency list
Stores neighbors in contiguous memory for better cache performance.
Implementations§
Source§impl CacheOptAdjacency
impl CacheOptAdjacency
Sourcepub fn from_edges(
edges: &[(VertexId, VertexId, f64)],
max_vertex: VertexId,
) -> Self
pub fn from_edges( edges: &[(VertexId, VertexId, f64)], max_vertex: VertexId, ) -> Self
Create from edge list
Sourcepub fn neighbors(&self, v: VertexId) -> &[(VertexId, f64)]
pub fn neighbors(&self, v: VertexId) -> &[(VertexId, f64)]
Get neighbors of a vertex (cache-friendly)
Sourcepub fn prefetch_neighbors(&self, v: VertexId)
pub fn prefetch_neighbors(&self, v: VertexId)
Prefetch neighbors of a vertex into L1 cache
Note: This is a no-op by default. Enable the simd feature for
actual prefetch intrinsics. The function signature allows for
drop-in replacement when SIMD is available.
Sourcepub fn vertex_count(&self) -> usize
pub fn vertex_count(&self) -> usize
Get vertex count
Trait Implementations§
Source§impl Clone for CacheOptAdjacency
impl Clone for CacheOptAdjacency
Source§fn clone(&self) -> CacheOptAdjacency
fn clone(&self) -> CacheOptAdjacency
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for CacheOptAdjacency
impl RefUnwindSafe for CacheOptAdjacency
impl Send for CacheOptAdjacency
impl Sync for CacheOptAdjacency
impl Unpin for CacheOptAdjacency
impl UnwindSafe for CacheOptAdjacency
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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>
Converts
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>
Converts
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