Initial release #1

Merged
warrence merged 102 commits from dev into main 2026-06-30 10:26:52 +02:00
2 changed files with 7 additions and 3 deletions
Showing only changes of commit 9088dd4683 - Show all commits
+5 -2
View File
@@ -10,7 +10,7 @@ impl From<Vertex> for usize {
}
#[derive(Copy, Clone, PartialEq, Eq)]
struct Incidence(usize);
pub struct Incidence(usize);
struct VertexIncidenceHeader {
incidence_count: usize,
@@ -69,6 +69,8 @@ impl Graph {
impl GraphTopology for Graph {
type Vertex = Vertex;
type Edge = Incidence;
fn vertex_count(&self) -> usize {
self.vertices.len()
}
@@ -104,9 +106,10 @@ impl GraphTopology for Graph {
Vertex(self.vertices.len() - 1)
}
fn add_edge(&mut self, v1: Self::Vertex, v2: Self::Vertex) {
fn add_edge(&mut self, v1: Self::Vertex, v2: Self::Vertex) -> Self::Edge {
self.add_incidence(v1, v2);
self.add_incidence(v2, v1);
Incidence(self.incidences.len() - 2)
}
}
+2 -1
View File
@@ -1,5 +1,6 @@
pub trait GraphTopology {
type Vertex: Copy + Eq;
type Edge;
fn vertex_count(&self) -> usize;
fn edge_count(&self) -> usize;
@@ -8,5 +9,5 @@ pub trait GraphTopology {
fn vertices(&self) -> impl Iterator<Item = Self::Vertex>;
fn neighbors(&self, v: Self::Vertex) -> impl Iterator<Item = Self::Vertex>;
fn add_vertex(&mut self) -> Self::Vertex;
fn add_edge(&mut self, v1: Self::Vertex, v2: Self::Vertex);
fn add_edge(&mut self, v1: Self::Vertex, v2: Self::Vertex) -> Self::Edge;
}