# beamer-macros
Derive macros for the Beamer VST3 framework.
This crate provides procedural macros that generate boilerplate code for plugin parameters:
- **`#[derive(Params)]`**: Generates parameter traits, VST3 integration, state persistence, and `Default` implementation
- **`#[derive(EnumParam)]`**: Generates enum parameter variants with display names
- **Declarative attributes**: Configure parameters with `#[param(id, name, default, range, kind)]`
- **Compile-time validation**: ID collision detection and hash generation
## Usage
**Most users should use the [`beamer`](https://crates.io/crates/beamer) crate instead**, which re-exports these macros with the `derive` feature (enabled by default).
```rust
use beamer::prelude::*;
use beamer::Params;
#[derive(Params)]
struct GainParams {
#[param(id = "gain", name = "Gain", default = 0.0, range = -60.0..=12.0, kind = "db")]
gain: FloatParam,
}
```
## Documentation
See the [main repository](https://github.com/helpermedia/beamer) for:
- [Parameter Documentation](https://github.com/helpermedia/beamer/blob/main/docs/REFERENCE.md#13-parameters)
- [Declarative Attributes Guide](https://github.com/helpermedia/beamer#parameter-attributes)
- [Examples](https://github.com/helpermedia/beamer/tree/main/examples)
## License
MIT