diff --git a/ntw_flowgraph/src/graph.rs b/ntw_flowgraph/src/graph.rs index fdf0653..db0d0d4 100644 --- a/ntw_flowgraph/src/graph.rs +++ b/ntw_flowgraph/src/graph.rs @@ -1,7 +1,5 @@ -use petgraph::graph::DiGraph; -use petgraph::graph::NodeIndex; - use crate::Block; +use petgraph::graph::DiGraph; pub struct Graph { diff --git a/ntw_flowgraph/src/inout.rs b/ntw_flowgraph/src/inout.rs index f7390df..32ee788 100644 --- a/ntw_flowgraph/src/inout.rs +++ b/ntw_flowgraph/src/inout.rs @@ -1,6 +1,8 @@ use ringbuf::HeapRb; use ringbuf::SharedRb; +use ringbuf::consumer::PopIter; use ringbuf::storage::Heap; +use ringbuf::traits::Consumer; use ringbuf::traits::Producer; use ringbuf::traits::Split; use ringbuf::wrap::caching::Caching; @@ -15,7 +17,7 @@ pub struct In pub rb: Caching>>, false, true>, } -// Represent a block input, in which data is pushed +// Represent a block output, in which data is pushed pub struct Out { to: Rc>>, @@ -49,6 +51,16 @@ impl In { self.block.set(Some(index)) } + + pub fn try_pop(&mut self) -> Option + { + self.rb.try_pop() + } + + pub fn pop_iter(&mut self) -> PopIter<'_, Caching>>, false, true>> + { + self.rb.pop_iter() + } } impl Out @@ -62,4 +74,11 @@ impl Out { self.rb.try_push(data) } + + pub fn push_iter(&mut self, iter: I) -> usize + where + I: Iterator, + { + self.rb.push_iter(iter) + } }