Skip to main content

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<F: FnMut(X) -> Y, X: Copy, Y> Process<X, Y> for FnProcess<F>

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<X, Output = Y>, Y, const N: usize> Process<X, Y> for Nyquist<[X; N]>

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, C: SplitProcess<X, Y, S>> Process<X, Y> for Split<C, 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