Refactor ElementMap, removing its copy-on-write feature

This commit is contained in:
2026-10-11 22:24:00 +02:00
parent 4e20c49486
commit 3d7dda6f7b
9 changed files with 281 additions and 113 deletions
+2 -1
View File
@@ -144,7 +144,8 @@ impl GraphTopology for FrozenGraph {
// TODO: Find a way to reduce the needed capacity for the edge ElementMap. This could be improved by finding a small vertex cover and store those vertices first. See https://en.wikipedia.org/wiki/Vertex_cover#Approximate_evaluation
fn edge_map<T: Clone>(&self, default: T) -> ElementMap<Self::Edge, T> {
ElementMap::new(default, |e| e.0, self.incidences.len() - 1)
// "incidences.len() - 1" would underflow for an edge-free graph.
ElementMap::new(default, |e| e.0, self.incidences.len().saturating_sub(1))
}
fn degree(&self, v: Self::Vertex) -> usize {