Function async_std::stream::from_fn [−][src]
pub fn from_fn<T, F>(f: F) -> FromFn<F> where
F: FnMut() -> Option<T>,
Creates a new stream where to produce each new element a provided closure is called.
This allows creating a custom stream with any behaviour without using the more verbose
syntax of creating a dedicated type and implementing a Stream
trait for it.
Examples
use async_std::prelude::*; use async_std::stream; let mut count = 0u8; let s = stream::from_fn(|| { count += 1; if count > 3 { None } else { Some(count) } }); pin_utils::pin_mut!(s); assert_eq!(s.next().await, Some(1)); assert_eq!(s.next().await, Some(2)); assert_eq!(s.next().await, Some(3)); assert_eq!(s.next().await, None);