pub trait GraphNodesExtendableInterface: GraphNodesNominalInterface {
fn node_mut<Id>(&mut self, id: Id) -> &mut Self::NodeHandle
where
Id: Into<<Self::NodeHandle as HasId>::Id>;
fn node_add_out_nodes<IntoId1, IntoId2, Iter>(
&mut self,
node_id: IntoId1,
out_nodes_iter: Iter
)
where
IntoId1: Into<<Self::NodeHandle as HasId>::Id>,
IntoId2: Into<<Self::NodeHandle as HasId>::Id>,
Iter: IntoIterator<Item = IntoId2>,
<Iter as IntoIterator>::IntoIter: Clone;
fn node_making<Id>(&mut self, id: Id) -> <Self::NodeHandle as HasId>::Id
where
Id: Into<<Self::NodeHandle as HasId>::Id>;
fn node_add_out_node<IntoId1, IntoId2>(
&mut self,
node_id: IntoId1,
out_node_id: IntoId2
)
where
IntoId1: Into<<Self::NodeHandle as HasId>::Id> + Clone,
IntoId2: Into<<Self::NodeHandle as HasId>::Id> + Clone,
{ ... }
fn make_with_edge_list<IntoIter, Id>(&mut self, into_iter: IntoIter)
where
Id: Into<<Self::NodeHandle as HasId>::Id>,
IntoIter: IntoIterator<Item = Id>,
<IntoIter as IntoIterator>::IntoIter: ExactSizeIterator,
<<IntoIter as IntoIterator>::IntoIter as Iterator>::Item == Id,
{ ... }
}
Expand description
Graph interface which allow to add more nodes. Know nothing about edges.
Required Methods
fn node_mut<Id>(&mut self, id: Id) -> &mut Self::NodeHandle where
Id: Into<<Self::NodeHandle as HasId>::Id>,
fn node_mut<Id>(&mut self, id: Id) -> &mut Self::NodeHandle where
Id: Into<<Self::NodeHandle as HasId>::Id>,
Get node with id mutably.
fn node_add_out_nodes<IntoId1, IntoId2, Iter>(
&mut self,
node_id: IntoId1,
out_nodes_iter: Iter
) where
IntoId1: Into<<Self::NodeHandle as HasId>::Id>,
IntoId2: Into<<Self::NodeHandle as HasId>::Id>,
Iter: IntoIterator<Item = IntoId2>,
<Iter as IntoIterator>::IntoIter: Clone,
fn node_add_out_nodes<IntoId1, IntoId2, Iter>(
&mut self,
node_id: IntoId1,
out_nodes_iter: Iter
) where
IntoId1: Into<<Self::NodeHandle as HasId>::Id>,
IntoId2: Into<<Self::NodeHandle as HasId>::Id>,
Iter: IntoIterator<Item = IntoId2>,
<Iter as IntoIterator>::IntoIter: Clone,
Add out nodes to the node.
fn node_making<Id>(&mut self, id: Id) -> <Self::NodeHandle as HasId>::Id where
Id: Into<<Self::NodeHandle as HasId>::Id>,
fn node_making<Id>(&mut self, id: Id) -> <Self::NodeHandle as HasId>::Id where
Id: Into<<Self::NodeHandle as HasId>::Id>,
Either make new or get existing node.
Provided Methods
fn node_add_out_node<IntoId1, IntoId2>(
&mut self,
node_id: IntoId1,
out_node_id: IntoId2
) where
IntoId1: Into<<Self::NodeHandle as HasId>::Id> + Clone,
IntoId2: Into<<Self::NodeHandle as HasId>::Id> + Clone,
fn node_add_out_node<IntoId1, IntoId2>(
&mut self,
node_id: IntoId1,
out_node_id: IntoId2
) where
IntoId1: Into<<Self::NodeHandle as HasId>::Id> + Clone,
IntoId2: Into<<Self::NodeHandle as HasId>::Id> + Clone,
Add out edges to the node.
fn make_with_edge_list<IntoIter, Id>(&mut self, into_iter: IntoIter) where
Id: Into<<Self::NodeHandle as HasId>::Id>,
IntoIter: IntoIterator<Item = Id>,
<IntoIter as IntoIterator>::IntoIter: ExactSizeIterator,
<<IntoIter as IntoIterator>::IntoIter as Iterator>::Item == Id,
fn make_with_edge_list<IntoIter, Id>(&mut self, into_iter: IntoIter) where
Id: Into<<Self::NodeHandle as HasId>::Id>,
IntoIter: IntoIterator<Item = Id>,
<IntoIter as IntoIterator>::IntoIter: ExactSizeIterator,
<<IntoIter as IntoIterator>::IntoIter as Iterator>::Item == Id,
Make edges.