bevy_event_chain_derive 0.2.0

Procedural macros for bevy_event_chain
Documentation
use proc_macro::TokenStream;

mod derive_chain_event;

/// Derive macro for `ChainEvent`s.
///
/// Requires either `chain: EventChain` or `#[event_target]` on an `EventChain` field.
///
/// Uses `EntityComponentTrigger` as the trigger by default.
/// Use `#[chain_event(trigger = ...)]` to specify a different trigger.
#[proc_macro_derive(ChainEvent, attributes(chain_event, event_target))]
pub fn derive_chain_event(input: TokenStream) -> TokenStream {
    derive_chain_event::derive_chain_event(input)
}

/// Derive macro for `RelatedChainEvent`s.
///
/// Requires either `chain: RelatedEventChain` or `#[event_target]` on a `RelatedEventChain` field.
///
/// Requires `#[related_chain_event(relationship = MyChild, relationship_target = MyParent)]`.
#[proc_macro_derive(RelatedChainEvent, attributes(related_chain_event, event_target))]
pub fn derive_related_chain_event(input: TokenStream) -> TokenStream {
    derive_chain_event::derive_related_chain_event(input)
}