Skip to main content

Chunk

Struct Chunk 

Source
pub struct Chunk<P>(pub P);
Expand description

Elementwise fixed-size chunk lifting.

Adapt a X -> Y processor into a [X; N] -> [Y; N] processor by flattening input and output.

This is the simplest array-lifting adapter and is often the right choice when a scalar stage should run elementwise over fixed-size chunks with no rate change and no frame semantics beyond flattening.

Prefer the more specific adapters when the inner stage consumes or produces grouped samples (ChunkIn, ChunkOut, ChunkInOut) or when stream phase is part of the semantics (Interpolator, Decimator).

§Examples

use dsp_process::{Chunk, Offset, Process, Split};

let mut p = Split::stateless(Chunk(Offset(3)));
assert_eq!(p.process([1, 2, 3]), [4, 5, 6]);

Tuple Fields§

§0: P

Trait Implementations§

Source§

impl<P: Clone> Clone for Chunk<P>

Source§

fn clone(&self) -> Chunk<P>

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<P: Copy> Copy for Chunk<P>

Source§

impl<P: Debug> Debug for Chunk<P>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<P: Default> Default for Chunk<P>

Source§

fn default() -> Chunk<P>

Returns the “default value” for a type. Read more
Source§

impl<C: SplitInplace<X, S>, S, X: Copy, const N: usize> SplitInplace<[X; N], S> for Chunk<C>

Source§

fn inplace(&self, state: &mut S, xy: &mut [[X; N]])

Source§

impl<C: SplitProcess<X, Y, S>, S, X: Copy, Y, const N: usize> SplitProcess<[X; N], [Y; N], S> for Chunk<C>

Source§

fn process(&self, state: &mut S, x: [X; N]) -> [Y; N]

Process an input into an output Read more
Source§

fn block(&self, state: &mut S, x: &[[X; N]], y: &mut [[Y; N]])

Process a block of inputs Read more

Auto Trait Implementations§

§

impl<P> Freeze for Chunk<P>
where P: Freeze,

§

impl<P> RefUnwindSafe for Chunk<P>
where P: RefUnwindSafe,

§

impl<P> Send for Chunk<P>
where P: Send,

§

impl<P> Sync for Chunk<P>
where P: Sync,

§

impl<P> Unpin for Chunk<P>
where P: Unpin,

§

impl<P> UnsafeUnpin for Chunk<P>
where P: UnsafeUnpin,

§

impl<P> UnwindSafe for Chunk<P>
where P: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<'a, X, S, T, const L: usize> SplitViewInplace<ViewMut<'a, X, FrameMajor, L>, S> for T
where X: Copy, T: SplitInplace<X, S>, S: ?Sized,

Source§

fn inplace_view(&self, state: &mut S, xy: ViewMut<'a, X, FrameMajor, L>)

Process one typed view in place.
Source§

impl<'a, 'b, X, Y, S, T, const L: usize> SplitViewProcess<View<'a, X, FrameMajor, L>, ViewMut<'b, Y, FrameMajor, L>, S> for T
where X: Copy, T: SplitProcess<X, Y, S>, S: ?Sized,

Source§

fn process_view( &self, state: &mut S, x: View<'a, X, FrameMajor, L>, y: ViewMut<'b, Y, FrameMajor, L>, )

Process one typed input view into one typed output view.
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.