bevy_auto_plugin 0.10.0

Procedural attribute macros for Bevy apps that reduce boilerplate by automatically registering components, resources, events, states, and systems in your plugin's build function.
Documentation
Automatically registers an event to be added to the app.

# Parameters
- `plugin = PluginType` - Required unless the `default_plugin` feature is enabled and `#[auto_plugin(default_plugin)]` is in scope. Specifies which plugin should register this event.
- `after_build` - Optional. Injects this macro's tokens at the end of the plugin build instead of the start.
- `target([global|entity])` - Optional. (defaults to `global`) Specifies this is a global or entity event: `Event` or `EntityEvent`.
- `generics(T1, T2, ...)` - Optional. Specifies concrete types for generic parameters.
  When provided, the event will be registered with these specific generic parameters.
  Note: Clippy will complain if you have duplicate generic type names. For those you can use named generics: `generics(A = ..., B = ...)`.
  - #### NOTE: `Event` and `EntityEvent` derives are not working with generics
- `derive` | `derive(Debug, Default, ..)` - Optional. Specifies that the macro should handle deriving `Event` or `EntityEvent` (requires `target(global)` or `target(entity)` params respectively). 
  Passes through any additional derives listed.
- `reflect` | `reflect(Debug, Default, ..)` - Optional. Specifies that the macro should handle emitting the single `#[reflect(...)]`.
  Passes through any additional reflects listed.
  If enabled in tandem with `derive` it also includes `#[derive(Reflect)]` 
- `register` - Enables type registration for the `Resource`
  Same as having `#[auto_register_type]`

# Example
```rust
use bevy::prelude::*;
use bevy_auto_plugin::prelude::*;

#[derive(AutoPlugin)]
#[auto_plugin(impl_plugin_trait)]
struct MyPlugin;

#[auto_event(plugin = MyPlugin, target(global), derive(Debug, Default, PartialEq), reflect,  register)]
struct FooGlobalEvent(usize);

#[auto_event(plugin = MyPlugin, target(entity), derive(Debug, PartialEq), reflect,  register)]
struct FooEntityEvent(#[event_target] Entity);
```