Trait rotary::AsInterleavedMut[][src]

pub trait AsInterleavedMut<T> {
    pub fn as_interleaved_mut(&mut self) -> &mut [T];
}

A trait describing a buffer that is interleaved and mutable.

This allows for accessing the raw underlying interleaved buffer.

Required methods

pub fn as_interleaved_mut(&mut self) -> &mut [T][src]

Access the underlying raw interleaved mutable buffer.

Examples

use rotary::{Channels, AsInterleaved, AsInterleavedMut};

fn test<B>(mut buffer: B) where B: Channels<i16> + AsInterleaved<i16> + AsInterleavedMut<i16> {
    buffer.as_interleaved_mut().copy_from_slice(&[1, 1, 2, 2, 3, 3, 4, 4]);

    assert_eq! {
        buffer.channel(0).iter().collect::<Vec<_>>(),
        &[1, 2, 3, 4],
    };

    assert_eq! {
        buffer.channel(1).iter().collect::<Vec<_>>(),
        &[1, 2, 3, 4],
    };

    assert_eq!(buffer.as_interleaved(), &[1, 1, 2, 2, 3, 3, 4, 4]);
}

test(rotary::interleaved![[0; 4]; 2]);
Loading content...

Implementations on Foreign Types

impl<'_, B, T> AsInterleavedMut<T> for &'_ mut B where
    B: AsInterleavedMut<T> + ?Sized
[src]

Loading content...

Implementors

impl<T> AsInterleavedMut<T> for rotary::interleaved::Interleaved<T>[src]

impl<T> AsInterleavedMut<T> for rotary::wrap::Interleaved<&mut [T]>[src]

impl<T, const N: usize> AsInterleavedMut<T> for rotary::wrap::Interleaved<&mut [T; N]>[src]

Loading content...