Struct fundsp::combinator::An

source ·
pub struct An<X: AudioNode>(pub X);
Expand description

AudioNode wrapper that implements operators and traits.

Tuple Fields§

§0: X

Implementations§

source§

impl<X: AudioNode> An<X>

source

pub fn reset(&mut self)

source

pub fn set_sample_rate(&mut self, sample_rate: f64)

source

pub fn tick( &mut self, input: &Frame<X::Sample, X::Inputs> ) -> Frame<X::Sample, X::Outputs>

source

pub fn process( &mut self, size: usize, input: &[&[X::Sample]], output: &mut [&mut [X::Sample]] )

source

pub fn route(&mut self, input: &SignalFrame, frequency: f64) -> SignalFrame

source

pub fn inputs(&self) -> usize

source

pub fn outputs(&self) -> usize

source

pub fn set_hash(&mut self, hash: u64)

source

pub fn ping(&mut self, probe: bool, hash: AttoHash) -> AttoHash

source

pub fn get_mono(&mut self) -> X::Sample

source

pub fn get_stereo(&mut self) -> (X::Sample, X::Sample)

source

pub fn filter_mono(&mut self, x: X::Sample) -> X::Sample

source

pub fn filter_stereo( &mut self, x: X::Sample, y: X::Sample ) -> (X::Sample, X::Sample)

Trait Implementations§

source§

impl<X> Add<An<X>> for Net32
where X: AudioNode<Sample = f32> + Send + Sync + 'static,

§

type Output = Net32

The resulting type after applying the + operator.
source§

fn add(self, y: An<X>) -> Self::Output

Performs the + operation. Read more
source§

impl<X> Add<An<X>> for Net64
where X: AudioNode<Sample = f64> + Send + Sync + 'static,

§

type Output = Net64

The resulting type after applying the + operator.
source§

fn add(self, y: An<X>) -> Self::Output

Performs the + operation. Read more
source§

impl<X> Add<An<X>> for f32
where X: AudioNode<Sample = f32>, X::Inputs: Size<f32>, X::Outputs: Size<f32>,

constant + X binary operator: Adds constant to outputs of X. Broadcasts constant to an arbitrary number of channels.

§

type Output = An<Unop<f32, X, FrameAddScalar<<X as AudioNode>::Outputs, f32>>>

The resulting type after applying the + operator.
source§

fn add(self, y: An<X>) -> Self::Output

Performs the + operation. Read more
source§

impl<X> Add<An<X>> for f64
where X: AudioNode<Sample = f64>, X::Inputs: Size<f64>, X::Outputs: Size<f64>,

constant + X binary operator: Adds constant to outputs of X. Broadcasts constant to an arbitrary number of channels.

§

type Output = An<Unop<f64, X, FrameAddScalar<<X as AudioNode>::Outputs, f64>>>

The resulting type after applying the + operator.
source§

fn add(self, y: An<X>) -> Self::Output

Performs the + operation. Read more
source§

impl<X, Y> Add<An<Y>> for An<X>
where X: AudioNode, Y: AudioNode<Sample = X::Sample, Outputs = X::Outputs>, X::Inputs: Size<X::Sample> + Add<Y::Inputs>, Y::Inputs: Size<Y::Sample>, <X::Inputs as Add<Y::Inputs>>::Output: Size<X::Sample>,

+ binary operator: Sums outputs of two nodes with disjoint inputs. The nodes must have the same number of outputs.

§

type Output = An<Binop<<X as AudioNode>::Sample, FrameAdd<<X as AudioNode>::Outputs, <X as AudioNode>::Sample>, X, Y>>

The resulting type after applying the + operator.
source§

fn add(self, y: An<Y>) -> Self::Output

Performs the + operation. Read more
source§

impl<X> Add<Net32> for An<X>
where X: AudioNode<Sample = f32> + Send + Sync + 'static,

§

type Output = Net32

The resulting type after applying the + operator.
source§

fn add(self, y: Net32) -> Self::Output

Performs the + operation. Read more
source§

impl<X> Add<Net64> for An<X>
where X: AudioNode<Sample = f64> + Send + Sync + 'static,

§

type Output = Net64

The resulting type after applying the + operator.
source§

fn add(self, y: Net64) -> Self::Output

Performs the + operation. Read more
source§

impl<X> Add<f32> for An<X>
where X: AudioNode<Sample = f32>, X::Inputs: Size<f32>, X::Outputs: Size<f32>,

X + constant binary operator: Adds constant to outputs of X. Broadcasts constant to an arbitrary number of channels.

§

type Output = An<Unop<f32, X, FrameAddScalar<<X as AudioNode>::Outputs, <X as AudioNode>::Sample>>>

The resulting type after applying the + operator.
source§

fn add(self, y: f32) -> Self::Output

Performs the + operation. Read more
source§

impl<X> Add<f64> for An<X>
where X: AudioNode<Sample = f64>, X::Inputs: Size<f64>, X::Outputs: Size<f64>,

X + constant binary operator: Adds constant to outputs of X. Broadcasts constant to an arbitrary number of channels.

§

type Output = An<Unop<f64, X, FrameAddScalar<<X as AudioNode>::Outputs, <X as AudioNode>::Sample>>>

The resulting type after applying the + operator.
source§

fn add(self, y: f64) -> Self::Output

Performs the + operation. Read more
source§

impl<X: AudioNode<Sample = f32> + Sync + Send> AudioUnit32 for An<X>
where X::Inputs: Size<f32>, X::Outputs: Size<f32>,

source§

fn reset(&mut self)

Reset the input state of the unit to an initial state where it has not processed any data. In other words, reset time to zero.
source§

fn set_sample_rate(&mut self, sample_rate: f64)

Set the sample rate of the unit. The default sample rate is 44100 Hz. The unit is allowed to reset itself here in response to sample rate changes. If the sample rate stays unchanged, then the goal is to maintain current state.
source§

fn tick(&mut self, input: &[f32], output: &mut [f32])

Process one sample. The length of input and output must be equal to inputs and outputs, respectively.
source§

fn process(&mut self, size: usize, input: &[&[f32]], output: &mut [&mut [f32]])

Process up to 64 (MAX_BUFFER_SIZE) samples. Buffers are supplied as slices. All buffers must have room for at least size samples. If size is zero then this is a no-op, which is permitted. The number of input and output buffers must be equal to inputs and outputs, respectively.
source§

fn inputs(&self) -> usize

Number of inputs to this unit. Equals size of the input argument in tick and process. This should be fixed after construction.
source§

fn outputs(&self) -> usize

Number of outputs from this unit. Equals size of the output argument in tick and process. This should be fixed after construction.
source§

fn get_id(&self) -> u64

Return an ID code for this type of unit.
source§

fn set_hash(&mut self, hash: u64)

Set unit pseudorandom phase hash. Override this to use the hash. This is called from ping (only). It should not be called by users. The default implementation does nothing.
source§

fn ping(&mut self, probe: bool, hash: AttoHash) -> AttoHash

Ping contained AudioUnits and AudioNodes to obtain a deterministic pseudorandom hash. The local hash includes children, too. Leaf nodes should not need to override this. If probe is true, then this is a probe for computing the network hash and set_hash should not be called yet. To set a custom hash for a graph, call this method with ping set to false and hash initialized with the custom hash.
source§

fn route(&mut self, input: &SignalFrame, frequency: f64) -> SignalFrame

Route constants, latencies and frequency responses at frequency Hz from inputs to outputs. Return output signal.
source§

fn footprint(&self) -> usize

Memory footprint of this unit in bytes, without counting buffers and other allocations.
source§

fn allocate(&mut self)

Preallocate all needed memory, including buffers for block processing. The default implementation does nothing.
source§

fn response(&mut self, output: usize, frequency: f64) -> Option<Complex64>

Evaluate frequency response of output at frequency Hz. Any linear response can be composed. Return None if there is no response or it could not be calculated. Read more
source§

fn response_db(&mut self, output: usize, frequency: f64) -> Option<f64>

Evaluate frequency response of output in dB at frequency Hz. Any linear response can be composed. Return None if there is no response or it could not be calculated. Read more
source§

fn latency(&mut self) -> Option<f64>

Causal latency in (fractional) samples. After a reset, we can discard this many samples from the output to avoid incurring a pre-delay. The latency may depend on the sample rate. Read more
source§

fn get_mono(&mut self) -> f32

Retrieve the next mono sample from a generator. The node must have no inputs and 1 or 2 outputs. If there are two outputs, average them. Read more
source§

fn get_stereo(&mut self) -> (f32, f32)

Retrieve the next stereo sample (left, right) from a generator. The node must have no inputs and 1 or 2 outputs. If there is just one output, duplicate it. Read more
source§

fn filter_mono(&mut self, x: f32) -> f32

Filter the next mono sample x. The node must have exactly 1 input and 1 output. Read more
source§

fn filter_stereo(&mut self, x: f32, y: f32) -> (f32, f32)

Filter the next stereo sample (x, y). The node must have exactly 2 inputs and 2 outputs. Read more
source§

fn display(&mut self) -> String

Print information about this unit into a string.
source§

impl<X: AudioNode<Sample = f64> + Sync + Send> AudioUnit64 for An<X>
where X::Inputs: Size<f64>, X::Outputs: Size<f64>,

source§

fn reset(&mut self)

Reset the input state of the unit to an initial state where it has not processed any data. In other words, reset time to zero.
source§

fn set_sample_rate(&mut self, sample_rate: f64)

Set the sample rate of the unit. The default sample rate is 44100 Hz. The unit is allowed to reset itself here in response to sample rate changes. If the sample rate stays unchanged, then the goal is to maintain current state.
source§

fn tick(&mut self, input: &[f64], output: &mut [f64])

Process one sample. The length of input and output must be equal to inputs and outputs, respectively.
source§

fn process(&mut self, size: usize, input: &[&[f64]], output: &mut [&mut [f64]])

Process up to 64 (MAX_BUFFER_SIZE) samples. Buffers are supplied as slices. All buffers must have room for at least size samples. If size is zero then this is a no-op, which is permitted. The number of input and output buffers must be equal to inputs and outputs, respectively.
source§

fn inputs(&self) -> usize

Number of inputs to this unit. Equals size of the input argument in tick and process. This should be fixed after construction.
source§

fn outputs(&self) -> usize

Number of outputs from this unit. Equals size of the output argument in tick and process. This should be fixed after construction.
source§

fn get_id(&self) -> u64

Return an ID code for this type of unit.
source§

fn set_hash(&mut self, hash: u64)

Set unit pseudorandom phase hash. Override this to use the hash. This is called from ping (only). It should not be called by users. The default implementation does nothing.
source§

fn ping(&mut self, probe: bool, hash: AttoHash) -> AttoHash

Ping contained AudioUnits and AudioNodes to obtain a deterministic pseudorandom hash. The local hash includes children, too. Leaf nodes should not need to override this. If probe is true, then this is a probe for computing the network hash and set_hash should not be called yet. To set a custom hash for a graph, call this method with ping set to false and hash initialized with the custom hash.
source§

fn route(&mut self, input: &SignalFrame, frequency: f64) -> SignalFrame

Route constants, latencies and frequency responses at frequency Hz from inputs to outputs. Return output signal.
source§

fn footprint(&self) -> usize

Memory footprint of this unit in bytes, without counting buffers and other allocations.
source§

fn allocate(&mut self)

Preallocate all needed memory, including buffers for block processing. The default implementation does nothing.
source§

fn response(&mut self, output: usize, frequency: f64) -> Option<Complex64>

Evaluate frequency response of output at frequency Hz. Any linear response can be composed. Return None if there is no response or it could not be calculated. Read more
source§

fn response_db(&mut self, output: usize, frequency: f64) -> Option<f64>

Evaluate frequency response of output in dB at frequency Hz. Any linear response can be composed. Return None if there is no response or it could not be calculated. Read more
source§

fn latency(&mut self) -> Option<f64>

Causal latency in (fractional) samples. After a reset, we can discard this many samples from the output to avoid incurring a pre-delay. The latency may depend on the sample rate. Read more
source§

fn get_mono(&mut self) -> f64

Retrieve the next mono sample from a generator. The node must have no inputs and 1 or 2 outputs. If there are two outputs, average them. Read more
source§

fn get_stereo(&mut self) -> (f64, f64)

Retrieve the next stereo sample (left, right) from a generator. The node must have no inputs and 1 or 2 outputs. If there is just one output, duplicate it. Read more
source§

fn filter_mono(&mut self, x: f64) -> f64

Filter the next mono sample x. The node must have exactly 1 input and 1 output. Read more
source§

fn filter_stereo(&mut self, x: f64, y: f64) -> (f64, f64)

Filter the next stereo sample (x, y). The node must have exactly 2 inputs and 2 outputs. Read more
source§

fn display(&mut self) -> String

Print information about this unit into a string.
source§

impl<X> BitAnd<An<X>> for Net32
where X: AudioNode<Sample = f32> + Send + Sync + 'static,

§

type Output = Net32

The resulting type after applying the & operator.
source§

fn bitand(self, y: An<X>) -> Self::Output

Performs the & operation. Read more
source§

impl<X> BitAnd<An<X>> for Net64
where X: AudioNode<Sample = f64> + Send + Sync + 'static,

§

type Output = Net64

The resulting type after applying the & operator.
source§

fn bitand(self, y: An<X>) -> Self::Output

Performs the & operation. Read more
source§

impl<T, X, Y> BitAnd<An<Y>> for An<X>
where T: Float, X: AudioNode<Sample = T>, Y: AudioNode<Sample = T, Inputs = X::Inputs, Outputs = X::Outputs>, Y::Inputs: Size<T>, Y::Outputs: Size<T>,

& binary operator: The bus operator mixes together units with similar connectivity that share inputs and outputs.

§

type Output = An<Bus<T, X, Y>>

The resulting type after applying the & operator.
source§

fn bitand(self, y: An<Y>) -> Self::Output

Performs the & operation. Read more
source§

impl<X> BitAnd<Net32> for An<X>
where X: AudioNode<Sample = f32> + Send + Sync + 'static,

§

type Output = Net32

The resulting type after applying the & operator.
source§

fn bitand(self, y: Net32) -> Self::Output

Performs the & operation. Read more
source§

impl<X> BitAnd<Net64> for An<X>
where X: AudioNode<Sample = f64> + Send + Sync + 'static,

§

type Output = Net64

The resulting type after applying the & operator.
source§

fn bitand(self, y: Net64) -> Self::Output

Performs the & operation. Read more
source§

impl<X> BitOr<An<X>> for Net32
where X: AudioNode<Sample = f32> + Send + Sync + 'static,

§

type Output = Net32

The resulting type after applying the | operator.
source§

fn bitor(self, y: An<X>) -> Self::Output

Performs the | operation. Read more
source§

impl<X> BitOr<An<X>> for Net64
where X: AudioNode<Sample = f64> + Send + Sync + 'static,

§

type Output = Net64

The resulting type after applying the | operator.
source§

fn bitor(self, y: An<X>) -> Self::Output

Performs the | operation. Read more
source§

impl<T, X, Y> BitOr<An<Y>> for An<X>
where T: Float, X: AudioNode<Sample = T>, Y: AudioNode<Sample = T>, X::Inputs: Size<T> + Add<Y::Inputs>, X::Outputs: Size<T> + Add<Y::Outputs>, Y::Inputs: Size<T>, Y::Outputs: Size<T>, <X::Inputs as Add<Y::Inputs>>::Output: Size<T>, <X::Outputs as Add<Y::Outputs>>::Output: Size<T>,

| binary operator: The stack operator stacks inputs and outputs of two nodes running in parallel.

§

type Output = An<Stack<T, X, Y>>

The resulting type after applying the | operator.
source§

fn bitor(self, y: An<Y>) -> Self::Output

Performs the | operation. Read more
source§

impl<X> BitOr<Net32> for An<X>
where X: AudioNode<Sample = f32> + Send + Sync + 'static,

§

type Output = Net32

The resulting type after applying the | operator.
source§

fn bitor(self, y: Net32) -> Self::Output

Performs the | operation. Read more
source§

impl<X> BitOr<Net64> for An<X>
where X: AudioNode<Sample = f64> + Send + Sync + 'static,

§

type Output = Net64

The resulting type after applying the | operator.
source§

fn bitor(self, y: Net64) -> Self::Output

Performs the | operation. Read more
source§

impl<X> BitXor<An<X>> for Net32
where X: AudioNode<Sample = f32> + Send + Sync + 'static,

§

type Output = Net32

The resulting type after applying the ^ operator.
source§

fn bitxor(self, y: An<X>) -> Self::Output

Performs the ^ operation. Read more
source§

impl<X> BitXor<An<X>> for Net64
where X: AudioNode<Sample = f64> + Send + Sync + 'static,

§

type Output = Net64

The resulting type after applying the ^ operator.
source§

fn bitxor(self, y: An<X>) -> Self::Output

Performs the ^ operation. Read more
source§

impl<T, X, Y> BitXor<An<Y>> for An<X>
where T: Float, X: AudioNode<Sample = T>, Y: AudioNode<Sample = T, Inputs = X::Inputs>, X::Inputs: Size<T>, X::Outputs: Size<T> + Add<Y::Outputs>, Y::Outputs: Size<T>, <X::Outputs as Add<Y::Outputs>>::Output: Size<T>,

^ binary operator: The branch operator sources two nodes from the same inputs and concatenates their outputs.

§

type Output = An<Branch<T, X, Y>>

The resulting type after applying the ^ operator.
source§

fn bitxor(self, y: An<Y>) -> Self::Output

Performs the ^ operation. Read more
source§

impl<X> BitXor<Net32> for An<X>
where X: AudioNode<Sample = f32> + Send + Sync + 'static,

§

type Output = Net32

The resulting type after applying the ^ operator.
source§

fn bitxor(self, y: Net32) -> Self::Output

Performs the ^ operation. Read more
source§

impl<X> BitXor<Net64> for An<X>
where X: AudioNode<Sample = f64> + Send + Sync + 'static,

§

type Output = Net64

The resulting type after applying the ^ operator.
source§

fn bitxor(self, y: Net64) -> Self::Output

Performs the ^ operation. Read more
source§

impl<X: Clone + AudioNode> Clone for An<X>

source§

fn clone(&self) -> An<X>

Returns a copy 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<X: AudioNode> DerefMut for An<X>

source§

fn deref_mut(&mut self) -> &mut Self::Target

Mutably dereferences the value.
source§

impl<X> Mul<An<X>> for Net32
where X: AudioNode<Sample = f32> + Send + Sync + 'static,

§

type Output = Net32

The resulting type after applying the * operator.
source§

fn mul(self, y: An<X>) -> Self::Output

Performs the * operation. Read more
source§

impl<X> Mul<An<X>> for Net64
where X: AudioNode<Sample = f64> + Send + Sync + 'static,

§

type Output = Net64

The resulting type after applying the * operator.
source§

fn mul(self, y: An<X>) -> Self::Output

Performs the * operation. Read more
source§

impl<X> Mul<An<X>> for f32
where X: AudioNode<Sample = f32>, X::Inputs: Size<f32>, X::Outputs: Size<f32>,

constant * X binary operator: Multiplies outputs of X with constant. Broadcasts constant to an arbitrary number of channels.

§

type Output = An<Unop<f32, X, FrameMulScalar<<X as AudioNode>::Outputs, f32>>>

The resulting type after applying the * operator.
source§

fn mul(self, y: An<X>) -> Self::Output

Performs the * operation. Read more
source§

impl<X> Mul<An<X>> for f64
where X: AudioNode<Sample = f64>, X::Inputs: Size<f64>, X::Outputs: Size<f64>,

constant * X binary operator: Multiplies outputs of X with constant. Broadcasts constant to an arbitrary number of channels.

§

type Output = An<Unop<f64, X, FrameMulScalar<<X as AudioNode>::Outputs, f64>>>

The resulting type after applying the * operator.
source§

fn mul(self, y: An<X>) -> Self::Output

Performs the * operation. Read more
source§

impl<X, Y> Mul<An<Y>> for An<X>
where X: AudioNode, Y: AudioNode<Sample = X::Sample, Outputs = X::Outputs>, X::Inputs: Size<X::Sample> + Add<Y::Inputs>, Y::Inputs: Size<Y::Sample>, <X::Inputs as Add<Y::Inputs>>::Output: Size<X::Sample>,

* binary operator: Multiplies outputs of two nodes with disjoint inputs. The nodes must have the same number of outputs.

§

type Output = An<Binop<<X as AudioNode>::Sample, FrameMul<<X as AudioNode>::Outputs, <X as AudioNode>::Sample>, X, Y>>

The resulting type after applying the * operator.
source§

fn mul(self, y: An<Y>) -> Self::Output

Performs the * operation. Read more
source§

impl<X> Mul<Net32> for An<X>
where X: AudioNode<Sample = f32> + Send + Sync + 'static,

§

type Output = Net32

The resulting type after applying the * operator.
source§

fn mul(self, y: Net32) -> Self::Output

Performs the * operation. Read more
source§

impl<X> Mul<Net64> for An<X>
where X: AudioNode<Sample = f64> + Send + Sync + 'static,

§

type Output = Net64

The resulting type after applying the * operator.
source§

fn mul(self, y: Net64) -> Self::Output

Performs the * operation. Read more
source§

impl<X> Mul<f32> for An<X>
where X: AudioNode<Sample = f32>, X::Inputs: Size<f32>, X::Outputs: Size<f32>,

X * constant binary operator: Multiplies outputs of X with constant. Broadcasts constant to an arbitrary number of channels.

§

type Output = An<Unop<f32, X, FrameMulScalar<<X as AudioNode>::Outputs, f32>>>

The resulting type after applying the * operator.
source§

fn mul(self, y: f32) -> Self::Output

Performs the * operation. Read more
source§

impl<X> Mul<f64> for An<X>
where X: AudioNode<Sample = f64>, X::Inputs: Size<f64>, X::Outputs: Size<f64>,

X * constant binary operator: Multiplies outputs of X with constant. Broadcasts constant to an arbitrary number of channels.

§

type Output = An<Unop<f64, X, FrameMulScalar<<X as AudioNode>::Outputs, f64>>>

The resulting type after applying the * operator.
source§

fn mul(self, y: f64) -> Self::Output

Performs the * operation. Read more
source§

impl<X> Neg for An<X>
where X: AudioNode, X::Outputs: Size<X::Sample>,

- unary operator: Negates node outputs. Any node can be negated.

§

type Output = An<Unop<<X as AudioNode>::Sample, X, FrameNeg<<X as AudioNode>::Outputs, <X as AudioNode>::Sample>>>

The resulting type after applying the - operator.
source§

fn neg(self) -> Self::Output

Performs the unary - operation. Read more
source§

impl<X> Not for An<X>
where X: AudioNode,

! unary operator: The thru operator makes output arity match input arity and passes through missing outputs.

§

type Output = An<Thru<X>>

The resulting type after applying the ! operator.
source§

fn not(self) -> Self::Output

Performs the unary ! operation. Read more
source§

impl<X> Shr<An<X>> for Net32
where X: AudioNode<Sample = f32> + Send + Sync + 'static,

§

type Output = Net32

The resulting type after applying the >> operator.
source§

fn shr(self, y: An<X>) -> Self::Output

Performs the >> operation. Read more
source§

impl<X> Shr<An<X>> for Net64
where X: AudioNode<Sample = f64> + Send + Sync + 'static,

§

type Output = Net64

The resulting type after applying the >> operator.
source§

fn shr(self, y: An<X>) -> Self::Output

Performs the >> operation. Read more
source§

impl<T, X, Y> Shr<An<Y>> for An<X>
where T: Float, X: AudioNode<Sample = T>, Y: AudioNode<Sample = T, Inputs = X::Outputs>, X::Inputs: Size<T>, X::Outputs: Size<T>, Y::Outputs: Size<T>,

>> binary operator: The pipe operator pipes outputs of left node to inputs of right node. Number of outputs on the left side and number of inputs on the right side must match.

§

type Output = An<Pipe<T, X, Y>>

The resulting type after applying the >> operator.
source§

fn shr(self, y: An<Y>) -> Self::Output

Performs the >> operation. Read more
source§

impl<X> Shr<Net32> for An<X>
where X: AudioNode<Sample = f32> + Send + Sync + 'static,

§

type Output = Net32

The resulting type after applying the >> operator.
source§

fn shr(self, y: Net32) -> Self::Output

Performs the >> operation. Read more
source§

impl<X> Shr<Net64> for An<X>
where X: AudioNode<Sample = f64> + Send + Sync + 'static,

§

type Output = Net64

The resulting type after applying the >> operator.
source§

fn shr(self, y: Net64) -> Self::Output

Performs the >> operation. Read more
source§

impl<X> Sub<An<X>> for Net32
where X: AudioNode<Sample = f32> + Send + Sync + 'static,

§

type Output = Net32

The resulting type after applying the - operator.
source§

fn sub(self, y: An<X>) -> Self::Output

Performs the - operation. Read more
source§

impl<X> Sub<An<X>> for Net64
where X: AudioNode<Sample = f64> + Send + Sync + 'static,

§

type Output = Net64

The resulting type after applying the - operator.
source§

fn sub(self, y: An<X>) -> Self::Output

Performs the - operation. Read more
source§

impl<X> Sub<An<X>> for f32
where X: AudioNode<Sample = f32>, X::Inputs: Size<f32> + Add<U0>, X::Outputs: Size<f32>, <X::Inputs as Add<U0>>::Output: Size<f32>,

constant - X binary operator: Negates X and adds constant to its outputs. Broadcasts constant to an arbitrary number of channels.

§

type Output = An<Binop<f32, FrameSub<<X as AudioNode>::Outputs, f32>, Constant<<X as AudioNode>::Outputs, f32>, X>>

The resulting type after applying the - operator.
source§

fn sub(self, y: An<X>) -> Self::Output

Performs the - operation. Read more
source§

impl<X> Sub<An<X>> for f64
where X: AudioNode<Sample = f64>, X::Inputs: Size<f64> + Add<U0>, X::Outputs: Size<f64>, <X::Inputs as Add<U0>>::Output: Size<f64>,

constant - X binary operator: Negates X and adds constant to its outputs. Broadcasts constant to an arbitrary number of channels.

§

type Output = An<Binop<f64, FrameSub<<X as AudioNode>::Outputs, f64>, Constant<<X as AudioNode>::Outputs, f64>, X>>

The resulting type after applying the - operator.
source§

fn sub(self, y: An<X>) -> Self::Output

Performs the - operation. Read more
source§

impl<X, Y> Sub<An<Y>> for An<X>
where X: AudioNode, Y: AudioNode<Sample = X::Sample, Outputs = X::Outputs>, X::Inputs: Size<X::Sample> + Add<Y::Inputs>, Y::Inputs: Size<Y::Sample>, <X::Inputs as Add<Y::Inputs>>::Output: Size<X::Sample>,

- binary operator: The difference of outputs of two nodes with disjoint inputs. The nodes must have the same number of outputs.

§

type Output = An<Binop<<X as AudioNode>::Sample, FrameSub<<X as AudioNode>::Outputs, <X as AudioNode>::Sample>, X, Y>>

The resulting type after applying the - operator.
source§

fn sub(self, y: An<Y>) -> Self::Output

Performs the - operation. Read more
source§

impl<X> Sub<Net32> for An<X>
where X: AudioNode<Sample = f32> + Send + Sync + 'static,

§

type Output = Net32

The resulting type after applying the - operator.
source§

fn sub(self, y: Net32) -> Self::Output

Performs the - operation. Read more
source§

impl<X> Sub<Net64> for An<X>
where X: AudioNode<Sample = f64> + Send + Sync + 'static,

§

type Output = Net64

The resulting type after applying the - operator.
source§

fn sub(self, y: Net64) -> Self::Output

Performs the - operation. Read more
source§

impl<X> Sub<f32> for An<X>
where X: AudioNode<Sample = f32>, X::Inputs: Size<f32>, X::Outputs: Size<f32>,

X - constant binary operator: Subtracts constant from outputs of X. Broadcasts constant to an arbitrary number of channels.

§

type Output = An<Unop<f32, X, FrameAddScalar<<X as AudioNode>::Outputs, f32>>>

The resulting type after applying the - operator.
source§

fn sub(self, y: f32) -> Self::Output

Performs the - operation. Read more
source§

impl<X> Sub<f64> for An<X>
where X: AudioNode<Sample = f64>, X::Inputs: Size<f64>, X::Outputs: Size<f64>,

X - constant binary operator: Subtracts constant from outputs of X. Broadcasts constant to an arbitrary number of channels.

§

type Output = An<Unop<f64, X, FrameAddScalar<<X as AudioNode>::Outputs, f64>>>

The resulting type after applying the - operator.
source§

fn sub(self, y: f64) -> Self::Output

Performs the - operation. Read more
source§

impl<X: AudioNode> Deref for An<X>

§

type Target = X

The resulting type after dereferencing.
source§

fn deref(&self) -> &Self::Target

Dereferences the value.

Auto Trait Implementations§

§

impl<X> Freeze for An<X>
where X: Freeze,

§

impl<X> RefUnwindSafe for An<X>
where X: RefUnwindSafe,

§

impl<X> Send for An<X>

§

impl<X> Sync for An<X>

§

impl<X> Unpin for An<X>
where X: Unpin,

§

impl<X> UnwindSafe for An<X>
where X: 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> DynClone for T
where T: Clone,

source§

fn __clone_box(&self, _: Private) -> *mut ()

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<F, T> IntoSample<T> for F
where T: FromSample<F>,

source§

fn into_sample(self) -> T

source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

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

§

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>,

§

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>,

§

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.