Add VertexMap to attach data to vertices
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
use typed_generational_arena::{Arena, Index};
|
||||
|
||||
use crate::maps::VertexMap;
|
||||
use crate::traits::{GraphTopology, GraphTopologyDeletion};
|
||||
|
||||
type Vertex = Index<VertexIncidenceHeader, usize, usize>;
|
||||
@@ -162,6 +163,14 @@ impl GraphTopology for Graph {
|
||||
self.incidences.len() / 2
|
||||
}
|
||||
|
||||
fn vertex_capacity(&self) -> usize {
|
||||
self.vertices.capacity()
|
||||
}
|
||||
|
||||
fn vertex_map<T: Clone>(&self, default: T) -> VertexMap<Self::Vertex, T> {
|
||||
VertexMap::new(default, |v| v.arr_idx(), self.vertex_capacity())
|
||||
}
|
||||
|
||||
fn degree(&self, v: Self::Vertex) -> usize {
|
||||
self.vertices[v].incidence_count
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user