pub trait PluginEditor<S: Sample> {
type Params: Params;
// Required method
fn editor(params: Arc<Self::Params>) -> Box<dyn Editor>;
}Expand description
Precision-keyed editor factory, bridged from the leaf traits.
plugin! / export_static! / export_plugin! build the editor from
the concrete logic type without naming which leaf trait
(PluginLogic vs PluginLogic64) it implements. Keyed on S
only so the two per-leaf blanket impls don’t overlap - the editor and
param store are precision-independent.
This lives off PluginLogicCore on purpose: it carries an
associated Params type and a receiverless editor, either of which
would make PluginLogicCore non-object-safe and break the
hot-reload loader’s type-erased Box<dyn PluginLogicCore<S>>. Only
concrete code (the shells’ macros) ever names it, never dyn.
Required Associated Types§
Required Methods§
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".