Struct dsp::signal::Output [] [src]

pub struct Output<S> where
    S: Signal,
    <S as Iterator>::Item: Frame
{ /* fields omitted */ }

An output node to which some signal S is Outputing its frames.

It may be more accurate to say that the Output "pull"s frames from the signal.

Methods

impl<S> Output<S> where
    S: Signal,
    <S as Iterator>::Item: Frame
[src]

The number of frames that have been requested from the Signal S by some other Output that have not yet been requested by this Output.

This is useful when using an Output to "monitor" some signal, allowing the user to drain only frames that have already been requested by some other Output.

Example

extern crate sample;

use sample::Signal;

fn main() {
    let frames = [[0.1], [0.2], [0.3]];
    let bus = frames.iter().cloned().bus();
    let mut signal = bus.send();
    let mut monitor = bus.send();
    assert_eq!(signal.collect::<Vec<_>>(), vec![[0.1], [0.2], [0.3]]);
    assert_eq!(monitor.pending_frames(), 3);
    assert_eq!(monitor.next(), Some([0.1]));
    assert_eq!(monitor.pending_frames(), 2);
}

Trait Implementations

impl<S> Iterator for Output<S> where
    S: Signal,
    <S as Iterator>::Item: Frame
[src]