beet_ecs_macros/
lib.rs

1mod action;
2mod utils;
3
4
5
6///
7/// ## Attributes
8/// `observers`
9/// Observers that are spawned when this component is added and despawned when it is removed.
10///
11/// ```rust
12/// #[derive(Component, Action)]
13/// #[observers(log_name_on_run,log_name_on_run)]
14/// struct LogOnRun(pub String);
15///
16/// fn log_name_on_run(trigger: Trigger<OnRun>, query: Query<&LogOnRun>) {
17/// 	let name = query
18/// 		.get(trigger.entity())
19/// 		.map(|n| n.0.as_str())
20/// 		.unwrap();
21/// 	println!("log_name_on_run: {name}");
22/// }
23///
24/// ```
25#[proc_macro_derive(
26	Action,
27	attributes(observers, global_observers, systems, category, storage)
28)]
29pub fn action(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
30	action::derive_action(input)
31}