pub trait GraphNodesExtendableInterface: GraphNodesNominalInterface {
// Required methods
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>;
// 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 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<Item = Id> { ... }
}
Expand description
Graph interface which allow to add more nodes. Know nothing about edges.
Required Methods§
Sourcefn node_mut<Id>(&mut self, id: Id) -> &mut Self::NodeHandle
fn node_mut<Id>(&mut self, id: Id) -> &mut Self::NodeHandle
Get node with id mutably.
Sourcefn 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.
Sourcefn node_making<Id>(&mut self, id: Id) -> <Self::NodeHandle as HasId>::Id
fn node_making<Id>(&mut self, id: Id) -> <Self::NodeHandle as HasId>::Id
Either make new or get existing node.
Provided Methods§
Sourcefn 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.
Sourcefn 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<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<Item = Id>,
Make edges.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.