Renamed FromGraph to GraphTopologyConversion to align with existing traits and separate from From trait

This commit is contained in:
2026-09-29 23:16:57 +02:00
parent 9d43f0cb8d
commit c8855daddf
11 changed files with 125 additions and 98 deletions
+12 -11
View File
@@ -3,7 +3,7 @@
use std::ops::IndexMut;
use crate::maps::ElementMap;
use crate::traits::{FromGraph, GraphTopology, Incidence, IncidenceCursor};
use crate::traits::{GraphTopology, GraphTopologyConversion, Incidence, IncidenceCursor};
/// An opaque handle identifying a vertex in a [`FrozenGraph`].
///
@@ -77,7 +77,7 @@ impl IncidenceCursor<FrozenGraph> for FrozenGraphIncidenceCursor {
/// let u = graph.add_vertex();
/// let v = graph.add_vertex();
/// let e = graph.add_edge(u, v);
/// let (graph, vertex_map, edge_map) = FrozenGraph::from_graph(&graph);
/// let (graph, vertex_map, edge_map) = FrozenGraph::convert(&graph);
///
/// // Queries the FrozenGraph instance via the returned map.
/// assert!(graph.are_adjacent(vertex_map[u], vertex_map[v]));
@@ -191,14 +191,8 @@ impl GraphTopology for FrozenGraph {
}
}
impl<G: GraphTopology> From<&G> for FrozenGraph {
fn from(graph: &G) -> Self {
Self::from_graph(graph).0
}
}
impl FromGraph for FrozenGraph {
fn from_graph<G: GraphTopology>(
impl GraphTopologyConversion for FrozenGraph {
fn convert<G: GraphTopology>(
source: &G,
) -> (
Self,
@@ -253,6 +247,12 @@ impl FromGraph for FrozenGraph {
}
}
impl<G: GraphTopology> From<&G> for FrozenGraph {
fn from(graph: &G) -> Self {
Self::convert(graph).0
}
}
#[cfg(test)]
mod trait_tests {
use super::FrozenGraph;
@@ -260,7 +260,8 @@ mod trait_tests {
crate::graph_topology_tests!(FrozenGraph);
crate::graph_topology_clone_tests!(FrozenGraph);
crate::graph_topology_from_graph_tests!(FrozenGraph, AppendGraph);
crate::graph_topology_conversion_tests!(FrozenGraph, AppendGraph);
crate::from_tests!(FrozenGraph, AppendGraph);
}
#[cfg(test)]