pub trait Graph<N, E> {
type NodeIdIterator: Iterator<Item = NodeId>;
type EdgeIdIterator: Iterator<Item = EdgeId>;
// Required methods
fn node_len(&self) -> IdType;
fn edge_len(&self) -> IdType;
fn node_id_iter(&self) -> Self::NodeIdIterator;
fn edge_id_iter(&self) -> Self::EdgeIdIterator;
fn node_data(&self, id: NodeId) -> &N;
fn edge_data(&self, id: EdgeId) -> &E;
fn edge(&self, id: EdgeId) -> EdgeRef<'_, E>;
fn edge_start(&self, id: EdgeId) -> NodeId;
fn edge_end(&self, id: EdgeId) -> NodeId;
fn is_node_id_valid(&self, id: NodeId) -> bool;
fn is_edge_id_valid(&self, id: EdgeId) -> bool;
}
Expand description
A basic graph.
Graphs defining this trait can act as containers for nodes and edges. Their functionality is very limited though, as not even navigation is defined.
Required Associated Types§
Sourcetype NodeIdIterator: Iterator<Item = NodeId>
type NodeIdIterator: Iterator<Item = NodeId>
An iterator over all node ids of a graph.
Sourcetype EdgeIdIterator: Iterator<Item = EdgeId>
type EdgeIdIterator: Iterator<Item = EdgeId>
An iterator over all edge ids of a graph.
Required Methods§
Sourcefn node_id_iter(&self) -> Self::NodeIdIterator
fn node_id_iter(&self) -> Self::NodeIdIterator
Returns an iterator over all node ids in the graph.
Sourcefn edge_id_iter(&self) -> Self::EdgeIdIterator
fn edge_id_iter(&self) -> Self::EdgeIdIterator
Returns an iterator over all edge ids in the graph.
Sourcefn node_data(&self, id: NodeId) -> &N
fn node_data(&self, id: NodeId) -> &N
Returns a reference to a nodes data, identified by the given id.
Sourcefn edge_data(&self, id: EdgeId) -> &E
fn edge_data(&self, id: EdgeId) -> &E
Returns a reference to an edges data, identified by the given id.
Sourcefn edge(&self, id: EdgeId) -> EdgeRef<'_, E>
fn edge(&self, id: EdgeId) -> EdgeRef<'_, E>
Returns an edge instance, identified by the given id.
Sourcefn edge_start(&self, id: EdgeId) -> NodeId
fn edge_start(&self, id: EdgeId) -> NodeId
Returns the start node of the edge identified by the given id.
Sourcefn edge_end(&self, id: EdgeId) -> NodeId
fn edge_end(&self, id: EdgeId) -> NodeId
Returns the end node of the edge identified by the given id.
Sourcefn is_node_id_valid(&self, id: NodeId) -> bool
fn is_node_id_valid(&self, id: NodeId) -> bool
Returns true if the given NodeId
refers to a node in this graph.
Sourcefn is_edge_id_valid(&self, id: EdgeId) -> bool
fn is_edge_id_valid(&self, id: EdgeId) -> bool
Returns true if the given EdgeId
refers to an edge in this graph.