Rustのfuturesのpoll_fn()によりStream作成のシンプルな例
code:rs
use futures::{self, StreamExt, task::Poll};
fn main() {
let mut i = 0;
let stream = futures::stream::poll_fn(move |_| -> Poll<Option<i32>> {
if i < 10 {
i += 1;
return Poll::Ready(Some(i))
}
Poll::Ready(None)
});
let v: Vec<i32> = futures::executor::block_on(stream.collect::<Vec<i32>>());
println!("{:?}", v);
}
code:Cargo.toml
name = "rust-playground"
version = "0.1.0"
edition = "2018"
futures = "0.3.5"
(2020年の時の記録)