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§
Sourcetype Parameters: ParameterStore + ParameterGroups + Parameters + Default
type Parameters: ParameterStore + ParameterGroups + Parameters + Default
The parameter collection type.
Required Methods§
Sourcefn parameters(&self) -> &Self::Parameters
fn parameters(&self) -> &Self::Parameters
Returns a reference to the parameters.
Sourcefn parameters_mut(&mut self) -> &mut Self::Parameters
fn parameters_mut(&mut self) -> &mut Self::Parameters
Returns a mutable reference to the parameters.
Sourcefn set_parameters(&mut self, params: Self::Parameters)
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.