# AF Bevy Plugin Macro ## What? Automates generation of bevy plugins boilerplate. ## Usage Let's say you have a Bevy crate called `Foo` consisting of two plugins, `ControlPlugin` and `DisplayPlugin`. You might write a `lib.rs` like this: ```rs use bevy::prelude::*; pub mod control; pub use control::*; pub mod display; pub use display::*; pub struct FooPlugins; use bevy::{app::PluginGroupBuilder, app::PluginGroup}; impl PluginGroup for FooPlugins { fn build(self) -> PluginGroupBuilder { PluginGroupBuilder::start::() .add(control::ControlPlugin) .add(display::DisplayPlugin) } } ``` Replace this with: ```rs use bevy::prelude::*; use af_bevy_plugin_macro::bevy_plugin_group; bevy_plugin_group!(foo, control, display); ``` Much better! ## License AF Bevy Plugin Macro is free, open source and permissively licensed! All code in this repository is dual-licensed under either: * MIT License ([LICENSE-MIT](LICENSE-MIT) or [http://opensource.org/licenses/MIT](http://opensource.org/licenses/MIT)) * Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0)) at your option. This means you can select the license you prefer! This dual-licensing approach is the de-facto standard in the Rust ecosystem and there are [very good reasons](https://github.com/bevyengine/bevy/issues/2373) to include both.