Process

Trait Process 

Source
pub trait Process<X: Copy, Y = X> {
    // Required method
    fn process(&mut self, x: X) -> Y;

    // Provided method
    fn block(&mut self, x: &[X], y: &mut [Y]) { ... }
}
Expand description

Processing block

Single input, single output

Required Methods§

Source

fn process(&mut self, x: X) -> Y

Update the state with a new input and obtain an output

Provided Methods§

Source

fn block(&mut self, x: &[X], y: &mut [Y])

Process a block of inputs into a block of outputs

Input and output must be of the same size.

Implementations on Foreign Types§

Source§

impl<X: Copy, Y, T: Process<X, Y>> Process<X, Y> for &mut T

Source§

fn process(&mut self, x: X) -> Y

Source§

fn block(&mut self, x: &[X], y: &mut [Y])

Implementors§

Source§

impl<T: Copy + Ord> Process<T> for &Clamp<T>

Source§

impl<T: Copy + Neg<Output = T>> Process<T> for &Neg

Source§

impl<T: Copy> Process<T> for &Identity

Source§

impl<X0: Copy + Add<X1, Output = Y>, X1: Copy, Y> Process<(X0, X1), Y> for &Add

Source§

impl<X0: Copy + Mul<X1, Output = Y>, X1: Copy, Y> Process<(X0, X1), Y> for &Mul

Source§

impl<X0: Copy + Sub<X1, Output = Y>, X1: Copy, Y> Process<(X0, X1), Y> for &Sub

Source§

impl<X: Copy + Default, const N: usize> Process<X, [X; N]> for &Rate

Source§

impl<X: Copy + Add<Output = Y> + Sub<Output = Y>, Y> Process<[X; 2], [Y; 2]> for &Butterfly

Source§

impl<X: Copy + Add<T, Output = Y>, Y, T: Copy> Process<X, Y> for &Offset<T>

Offset using Add

Source§

impl<X: Copy + Add<X, Output = Y>, Y, const N: usize> Process<X, Y> for Nyquist<[X; N]>

Source§

impl<X: Copy + Mul<T, Output = Y>, Y, T: Copy> Process<X, Y> for &Gain<T>

Gain using Mul

Source§

impl<X: Copy + Sub<Output = Y>, Y> Process<[X; 2], Y> for &Sub

Source§

impl<X: Copy + Sub<X, Output = Y>, Y, const N: usize> Process<X, Y> for Comb<[X; N]>

Source§

impl<X: Copy> Process<[X; 1], X> for &Identity

Flatten

Source§

impl<X: Copy> Process<X, (X, X)> for &Identity

Fan out

Source§

impl<X: Copy, Y, S: ?Sized, C: SplitProcess<X, Y, S> + ?Sized> Process<X, Y> for Split<&C, &mut S>

Source§

impl<X: Copy, Y: Product<X>, const N: usize> Process<[X; N], Y> for &Mul

Source§

impl<X: Copy, Y: Sum<X>, const N: usize> Process<[X; N], Y> for &Add

Source§

impl<X: Copy, Y: AddAssign<X> + Copy> Process<X, Y> for Integrator<Y>

Source§

impl<X: Copy, const N: usize> Process<Option<[X; N]>, X> for Buffer<[X; N]>

Buffer out of chunks

Panics on underflow

Source§

impl<X: Copy, const N: usize> Process<[X; N], X> for &Rate

Source§

impl<X: Copy, const N: usize> Process<X> for Buffer<[X; N]>

Delay line

Source§

impl<X: Copy, const N: usize> Process<X, Option<[X; N]>> for Buffer<[X; N]>

Buffer into chunks

Source§

impl<X: Copy, const N: usize> Process<X, [X; N]> for &Identity

Fan out