It's async-stream
, but without proc macros.
use async_stream_lite::async_stream;
use futures_util::{pin_mut, stream::StreamExt};
#[tokio::main]
async fn main() {
let stream = async_stream(|yielder| async move {
for i in 0..3 {
yielder.r#yield(i).await;
}
});
pin_mut!(stream);
while let Some(value) = stream.next().await {
println!("got {}", value);
}
}
async-stream-lite
supports #![no_std]
, but requires alloc
.