ConstantMask

Struct ConstantMask 

Source
pub struct ConstantMask(pub u64);
Expand description

An optional optimization hint on which channels have all samples set to the same value. The first bit (0x1) is the first channel, the second bit is the second channel, and so on.

This can be useful for nodes that use audio buffers as CV (control voltage) ports.

Tuple Fields§

§0: u64

Implementations§

Source§

impl ConstantMask

Source

pub const NONE_CONSTANT: Self

A mask with no channels marked as constant

Source

pub const MONO_CONSTANT: Self

A mask with only the first channel marked as constant

Source

pub const STEREO_CONSTANT: Self

A mask with only the first two channels marked as constant

Source

pub const fn new_all_constant(num_channels: usize) -> Self

Construct a new ConstantMask with all channels marked as constant.

num_channels must be less than or equal to 64.

Source

pub const fn is_channel_constant(&self, i: usize) -> bool

Returns true if the channel is marked as constant, false otherwise.

i must be less than 64.

Source

pub const fn any_channel_constant(&self, num_channels: usize) -> bool

Returns true if any channel is marked as constant, false otherwise.

num_channels must be less than or equal to 64.

Source

pub const fn all_channels_constant(&self, num_channels: usize) -> bool

Returns true if all channels are marked as constant, false otherwise.

num_channels must be less than or equal to 64.

Source

pub const fn range_constant(&self, range: Range<usize>) -> bool

Returns true if all channels in the given range are marked as constant, false otherwise.

This range must be in the range [0, 64]

Source

pub fn set_channel(&mut self, i: usize, constant: bool)

Mark/un-mark the given channel as constant.

i must be less than 64.

Source

pub const fn union(self, other: Self) -> Self

Source

pub fn union_with(&mut self, other: Self)

Source

pub fn to_silence_mask<V: AsRef<[f32]>>(self, channels: &[V]) -> SilenceMask

Convert this constant mask into a silence mask.

Source

pub unsafe fn to_silence_mask_unchecked<V: AsRef<[f32]>>( self, channels: &[V], ) -> SilenceMask

Convert this constant mask into a silence mask, assuming that none of the slices in channels are empty.

§Safety

All slices in channels must not be empty.

Trait Implementations§

Source§

impl Clone for ConstantMask

Source§

fn clone(&self) -> ConstantMask

Returns a duplicate of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for ConstantMask

Source§

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

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

impl Default for ConstantMask

Source§

fn default() -> ConstantMask

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

impl Hash for ConstantMask

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for ConstantMask

Source§

fn eq(&self, other: &ConstantMask) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for ConstantMask

Source§

impl Eq for ConstantMask

Source§

impl StructuralPartialEq for ConstantMask

Auto Trait Implementations§

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> Downcast for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Converts Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.
Source§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Converts Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
Source§

fn as_any(&self) -> &(dyn Any + 'static)

Converts &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
Source§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Converts &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
Source§

impl<T> DowncastSend for T
where T: Any + Send,

Source§

fn into_any_send(self: Box<T>) -> Box<dyn Any + Send>

Converts Box<Trait> (where Trait: DowncastSend) to Box<dyn Any + Send>, which can then be downcast into Box<ConcreteType> where ConcreteType implements Trait.
Source§

impl<T> DynEq for T
where T: Any + Eq,

Source§

fn dyn_eq(&self, other: &(dyn DynEq + 'static)) -> bool

This method tests for self and other values to be equal. Read more
Source§

impl<T> DynHash for T
where T: DynEq + Hash,

Source§

fn dyn_hash(&self, state: &mut dyn Hasher)

Feeds this value into the given Hasher.
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FromWorld for T
where T: Default,

Source§

fn from_world(_world: &mut World) -> T

Creates Self using default().

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<T> IntoResult<T> for T

Source§

fn into_result(self) -> Result<T, RunSystemError>

Converts this type into the system output type.
Source§

impl<F, T> IntoSample<T> for F
where T: FromSample<F>,

Source§

fn into_sample(self) -> T

Source§

impl<A> Is for A
where A: Any,

Source§

fn is<T>() -> bool
where T: Any,

Checks if the current type “is” another type, using a TypeId equality comparison. This is most useful in the context of generic logic. Read more
Source§

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

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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.
Source§

impl<T> TypeData for T
where T: 'static + Send + Sync + Clone,

Source§

fn clone_type_data(&self) -> Box<dyn TypeData>

Creates a type-erased clone of this value.
Source§

impl<T> ConditionalSend for T
where T: Send,