[][src]Function dasp_signal::gen_mut

pub fn gen_mut<G, F>(gen_mut: G) -> GenMut<G, F> where
    G: FnMut() -> F,
    F: Frame

A signal that generates frames using the given function which may mutate some state.

The resulting signal is assumed to be infinite and is_exhausted will always return false. To create an exhaustive signal first create an Iterator and then use from_iter.

Example

use dasp_signal::{self as signal, Signal};

fn main() {
    let mut f = [0.0];
    let mut signal = signal::gen_mut(|| {
        let r = f;
        f[0] += 0.1;
        r
    });
    assert_eq!(signal.next(), [0.0]);
    assert_eq!(signal.next(), [0.1]);
    assert_eq!(signal.next(), [0.2]);
}