pub struct Config {
pub name: &'static str,
pub category: Category,
pub vendor: &'static str,
pub url: &'static str,
pub email: &'static str,
pub version: &'static str,
pub has_editor: bool,
pub subcategories: &'static [Subcategory],
}Expand description
Format-agnostic plugin configuration.
Contains metadata shared across all plugin formats. Format-specific configurations (like VST3 UIDs or AU FourCC codes) are defined separately.
Fields§
§name: &'static strPlugin name displayed in the DAW.
category: CategoryPlugin category (effect, instrument, etc.)
vendor: &'static strVendor/company name.
url: &'static strVendor URL.
email: &'static strVendor email.
version: &'static strPlugin version string.
has_editor: boolWhether this plugin has an editor/GUI.
subcategories: &'static [Subcategory]Plugin subcategories for more specific classification.
Implementations§
Source§impl Config
impl Config
Sourcepub const fn with_vendor(self, vendor: &'static str) -> Self
pub const fn with_vendor(self, vendor: &'static str) -> Self
Set the vendor name.
Sourcepub const fn with_email(self, email: &'static str) -> Self
pub const fn with_email(self, email: &'static str) -> Self
Set the vendor email.
Sourcepub const fn with_version(self, version: &'static str) -> Self
pub const fn with_version(self, version: &'static str) -> Self
Set the version string.
Sourcepub const fn with_editor(self) -> Self
pub const fn with_editor(self) -> Self
Enable the editor/GUI.
Sourcepub const fn with_subcategories(
self,
subcategories: &'static [Subcategory],
) -> Self
pub const fn with_subcategories( self, subcategories: &'static [Subcategory], ) -> Self
Sourcepub fn vst3_subcategories(&self) -> String
pub fn vst3_subcategories(&self) -> String
Build the VST3 subcategories string.
Combines the main category with subcategories using pipe separators.
For example: Category::Effect with [Subcategory::Dynamics] becomes "Fx|Dynamics".
§Example
let config = Config::new("My Plugin", Category::Effect)
.with_subcategories(&[Subcategory::Dynamics, Subcategory::Eq]);
assert_eq!(config.vst3_subcategories(), "Fx|Dynamics|EQ");Get AU tags derived from subcategories.
Returns tags for subcategories that have AU equivalents. Subcategories without AU mappings are skipped.
§Example
let config = Config::new("My Plugin", Category::Effect)
.with_subcategories(&[Subcategory::Dynamics, Subcategory::Eq]);
assert_eq!(config.au_tags(), vec!["Dynamics", "EQ"]);