diff options
| author | Yuval Adam <_@yuv.al> | 2022-07-07 16:38:56 +0300 |
|---|---|---|
| committer | Yuval Adam <_@yuv.al> | 2022-07-07 16:38:56 +0300 |
| commit | 6e182d22b7586280ce1be7f63d9dab1dc33aacec (patch) | |
| tree | afb32a07075ef9a84f92d8c73062c20b38172645 /src | |
| parent | 71cb0c8532ad92e133a6cf56e7511a18dd385e23 (diff) | |
Diffstat (limited to 'src')
| -rw-r--r-- | src/main.rs | 32 |
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; } |
