Function sampara::signal::from_fn [−][src]
pub fn from_fn<F, G, const N: usize>(gen_fn: G) -> FromFn<F, G, N> where
F: Frame<N>,
G: FnMut() -> Option<F>,
Creates a new Signal
where each Frame
is yielded by calling a given
closure that produces a Option<Frame>
for each iteration.
use sampara::{signal, Signal}; fn main() { let mut state = 1; let mut signal = signal::from_fn(|| { if state < 4 { let frame = [state, state * 2, state * 3]; state += 1; Some(frame) } else { None } }); assert_eq!(signal.next(), Some([1, 2, 3])); assert_eq!(signal.next(), Some([2, 4, 6])); assert_eq!(signal.next(), Some([3, 6, 9])); assert_eq!(signal.next(), None); }