[−][src]Crate bevy_discovery
Bevy Discovery
This crate adds #[derive(DiscoveryPlugin)]
which will scan the project files for
functions annotated with #[system]
and register them automagically.
Example:
use bevy::prelude::*; #[macro_use] extern crate bevy_discovery; fn main() { App::build() .add_plugin(DiscoveryPlugin) .run(); } #[system] fn discovered_system() { println!("Woo, discovered system!"); } #[system(stage::POST_UPDATE)] fn post_update_system() { println!("Hey, post update system!"); } #[derive(DiscoveryPlugin)] struct DiscoveryPlugin;
Compile time performance
Full rebuild | Incremental | |
Normal | 198.982 ± 1.167 s | 25.944 ± 1.486 s |
Discovered | 207.636 ± 3.785 s | 26.546 ± 1.782 s |
These are the compile times for my fork of bevy-robbo, averaged over five runs with a discarded warmup round each using hyperfine.
Attribute Macros
system | Use this macro to annotate systems that need to be registered. Optionally, you can pass a value that evaluates to &str to register the macro in a specific stage. |
Derive Macros
DiscoveryPlugin | Annotating a struct with this will implement |