summaryrefslogtreecommitdiff
path: root/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs32
1 files changed, 28 insertions, 4 deletions
diff --git a/src/main.rs b/src/main.rs
index c82d35d..3a0a6d2 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1,14 +1,22 @@
+use bytes::Bytes;
+
use async_stream::stream;
use futures::stream::Stream;
use futures_util::pin_mut;
-use futures_util::stream::StreamExt;
+// use futures_util::stream::StreamExt;
use std::future::Future;
use std::pin::Pin;
use std::task::{Context, Poll};
-use std::time::{Duration, Instant};
+use std::time::Instant;
+
+use tokio::fs::File;
+// use std::fs::File;
+use tokio::io::BufReader;
+use tokio_stream::StreamExt;
+use tokio_util::io::ReaderStream;
struct Delay {
when: Instant,
@@ -79,10 +87,26 @@ fn print_sink<S: Stream<Item = u32>>(input: S) -> impl Stream<Item = ()> {
}
}
+async fn file_source() -> impl Stream<Item = u32> {
+ stream! {
+ let f = File::open("/home/yuval/dev/rustradio-docs/src/background.md").await.unwrap();
+ let s = ReaderStream::new(f);
+ loop {
+ yield "4".as_bytes()[0] as u32
+ }
+ // loop {
+ // let val = s.next().await.unwrap();
+ // // yield val
+ // yield Bytes::new()
+ // }
+ }
+}
+
#[tokio::main]
async fn main() {
- let number_source = NumberSource { i: 0 };
- let s = print_sink(double(number_source));
+ // let number_source = NumberSource { i: 0 };
+ // let s = print_sink(double(number_source));
+ let s = print_sink(file_source().await);
pin_mut!(s); // needed for iteration
s.next().await;
}