Skip to main content

HasParameters

Trait HasParameters 

Source
pub trait HasParameters: Send + 'static {
    type Parameters: ParameterStore + ParameterGroups + Parameters + Default;

    // Required methods
    fn parameters(&self) -> &Self::Parameters;
    fn parameters_mut(&mut self) -> &mut Self::Parameters;
    fn set_parameters(&mut self, params: Self::Parameters);
}
Expand description

Trait for types that hold parameters.

This trait provides a common interface for parameter access, shared between Descriptor (unprepared state) and Processor (prepared state). Both traits require HasParameters as a supertrait.

§Derive Macro

Use #[derive(HasParameters)] to automatically implement this trait for structs with a #[parameters] field annotation:

#[derive(Default, HasParameters)]
pub struct GainPlugin {
    #[parameters]
    parameters: GainParameters,
}

#[derive(HasParameters)]
pub struct GainProcessor {
    #[parameters]
    parameters: GainParameters,
}

This eliminates the boilerplate of implementing parameters(), parameters_mut(), and set_parameters() on both your Plugin and Processor types.

Required Associated Types§

Source

type Parameters: ParameterStore + ParameterGroups + Parameters + Default

The parameter collection type.

Required Methods§

Source

fn parameters(&self) -> &Self::Parameters

Returns a reference to the parameters.

Source

fn parameters_mut(&mut self) -> &mut Self::Parameters

Returns a mutable reference to the parameters.

Source

fn set_parameters(&mut self, params: Self::Parameters)

Sets the parameters, replacing any existing values.

This is used by the default Processor::unprepare() implementation to transfer parameters from the processor back to the definition.

Implementors§