Trait GraphNodesExtendableInterface

Source
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§

Source

fn node_mut<Id>(&mut self, id: Id) -> &mut Self::NodeHandle
where Id: Into<<Self::NodeHandle as HasId>::Id>,

Get node with id mutably.

Source

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.

Source

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§

Source

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.

Source

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.

Implementors§

Source§

impl<NodeId, EdgeId, Kind> GraphNodesExtendableInterface for CellNodeFactory<NodeId, EdgeId, Kind>

Source§

impl<NodeId, EdgeId, Kind> GraphNodesExtendableInterface for NodeFactory<NodeId, EdgeId, Kind>