pub struct Graph<TData, TOp> { /* private fields */ }
Expand description
Graph
Implementations
pub fn iter_data(&self) -> NodeIterator<'_, TData>ⓘNotable traits for NodeIterator<'a, TNode>impl<'a, TNode> Iterator for NodeIterator<'a, TNode> type Item = &'a TNode;
pub fn iter_data(&self) -> NodeIterator<'_, TData>ⓘNotable traits for NodeIterator<'a, TNode>impl<'a, TNode> Iterator for NodeIterator<'a, TNode> type Item = &'a TNode;
impl<'a, TNode> Iterator for NodeIterator<'a, TNode> type Item = &'a TNode;
iterator over data node.
pub fn iter_op(&self) -> NodeIterator<'_, TOp>ⓘNotable traits for NodeIterator<'a, TNode>impl<'a, TNode> Iterator for NodeIterator<'a, TNode> type Item = &'a TNode;
pub fn iter_op(&self) -> NodeIterator<'_, TOp>ⓘNotable traits for NodeIterator<'a, TNode>impl<'a, TNode> Iterator for NodeIterator<'a, TNode> type Item = &'a TNode;
impl<'a, TNode> Iterator for NodeIterator<'a, TNode> type Item = &'a TNode;
iterator over op node.
Return the list of ops that the given variable is the input of the func.
Return the list of ops that the given variable is the output.
Return the list of input given the func.
Return a list of data as the output of the op.
Add a data node.
let mut g = Graph::<NetIndex, NetIndex>::new();
let data1 = NetIndex::new(0,0);
let data2 = NetIndex::new(1,0);
g.add_data(&data1);
g.add_data(&data2);
Remove a data node, op node and downstream data/op node are removed.
Remvoe an op node, input data node and downstream data/op node are removed.
Decouple input variable and op
Decouple op and output variable
list data node without upstream op node in a set.
list data node without downstream op node in a set.
Connect input data, output data and operation
Auxilary connect, This allows the graph to support loop.
Walk through the graph with a starting set of data nodes. Go through backwards if forward is false. The closure call provides the side-effect.