# Bevy Discovery This crate adds `#[derive(DiscoveryPlugin)]` which will scan the project files for functions annotated with `#[system]` and register them automagically. Example: ```rust 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 |