unfold

Function unfold 

Source
pub fn unfold<T, F, Fut, Item, E>(init: T, function: F) -> Unfold<T, F, Fut>
where F: FnMut(T, Item) -> Fut, Fut: Future<Output = Result<T, E>>,
Expand description

Create a sink from a function which processes one item at a time.

ยงExamples

use core::pin::pin;

use crate::sink::{self, SinkExt};

let unfold = sink::unfold(0, |mut sum, i: i32| {
    async move {
        sum += i;
        eprintln!("{}", i);
        Ok::<_, core::convert::Infallible>(sum)
    }
});
let mut unfold = pin!(unfold);
unfold.send(5).await?;