From 5f86cb2cd66751d6244d48f5a4927b2f6981036c Mon Sep 17 00:00:00 2001 From: Albin Chaboissier Date: Thu, 5 Mar 2026 23:12:51 +0100 Subject: [PATCH] Forwards rb functions in in and out --- ntw_flowgraph/src/graph.rs | 4 +--- ntw_flowgraph/src/inout.rs | 21 ++++++++++++++++++++- 2 files changed, 21 insertions(+), 4 deletions(-) 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) + } }