Better interface for stream readers

This commit is contained in:
2025-10-23 20:52:15 +02:00
parent 6bc7c2ab16
commit e0dc672b58
4 changed files with 120 additions and 34 deletions

45
examples/streams.rs Normal file
View File

@ -0,0 +1,45 @@
use std::time::Duration;
use rdsp::{stream, stream_operators};
fn main() {
let (mut a_tx, a_rx) = stream::stream::<u32>(16);
let (mut b_tx, b_rx) = stream::stream::<u32>(16);
std::thread::spawn(move || {
let mut k = 0;
loop {
std::thread::sleep(Duration::from_millis(800));
let mut buf = a_tx.write();
for i in 0..16 {
buf[i].write(k);
k += 1;
}
buf.swap(16);
}
});
std::thread::spawn(move || {
let mut k = 0;
loop {
std::thread::sleep(Duration::from_millis(300));
let mut buf = b_tx.write();
for i in 0..16 {
buf[i].write(k);
k += 1;
}
buf.swap(16);
}
});
let (adder, out) = stream_operators::StreamAdder::new(a_rx, b_rx);
{
loop {
let x = out.read();
for i in 0..x.len() {
println!("{}", x[i]);
}
}
}
}