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§
Provided Methods§
Implementations on Foreign Types§
Implementors§
impl<F: FnMut(X) -> Y, X: Copy, Y> Process<X, Y> for FnProcess<F>
impl<T: Copy + Neg<Output = T>> Process<T> for Neg
impl<T: Copy> Process<T> for Identity
impl<X0: Copy + Add<X1, Output = Y>, X1: Copy, Y> Process<(X0, X1), Y> for Add
impl<X0: Copy + Mul<X1, Output = Y>, X1: Copy, Y> Process<(X0, X1), Y> for Mul
impl<X0: Copy + Sub<X1, Output = Y>, X1: Copy, Y> Process<(X0, X1), Y> for Sub
impl<X: Copy + Default, const N: usize> Process<X, [X; N]> for Rate
impl<X: Copy + Add<Output = Y> + Sub<Output = Y>, Y> Process<[X; 2], [Y; 2]> for &Butterfly
impl<X: Copy + Add<X, Output = Y>, Y, const N: usize> Process<X, Y> for Nyquist<[X; N]>
impl<X: Copy + Sub<Output = Y>, Y> Process<[X; 2], Y> for Sub
impl<X: Copy + Sub<X, Output = Y>, Y, const N: usize> Process<X, Y> for Comb<[X; N]>
impl<X: Copy> Process<[X; 1], X> for Identity
Flatten
impl<X: Copy> Process<X, (X, X)> for Identity
Fan out
impl<X: Copy, Y, S, C: SplitProcess<X, Y, S>> Process<X, Y> for Split<C, S>
impl<X: Copy, Y: Product<X>, const N: usize> Process<[X; N], Y> for Mul
impl<X: Copy, Y: Sum<X>, const N: usize> Process<[X; N], Y> for Add
impl<X: Copy, Y: AddAssign<X> + Copy> Process<X, Y> for Integrator<Y>
impl<X: Copy, const N: usize> Process<Option<[X; N]>, X> for Buffer<[X; N]>
Buffer out of chunks
Panics on underflow
impl<X: Copy, const N: usize> Process<[X; N], X> for Rate
impl<X: Copy, const N: usize> Process<X> for Buffer<[X; N]>
Delay line
impl<X: Copy, const N: usize> Process<X, Option<[X; N]>> for Buffer<[X; N]>
Buffer into chunks
impl<X: Copy, const N: usize> Process<X, [X; N]> for Identity
Fan out