1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
#![feature(log_syntax)] use proc_macro::TokenStream; use crate::derive::event_macro_impl; use crate::implement::{ implement_add_event_listeners_impl, implement_become_event_listener_impl, implement_event_emitter_impl, implement_get_event_listeners_impl, implement_remove_event_listeners_impl, implement_stop_being_event_listener_impl, }; mod derive; mod implement; mod parser; #[proc_macro_derive(Event, attributes(topic))] pub fn event_macro_derive(input: TokenStream) -> TokenStream { event_macro_impl(input) } #[proc_macro] pub fn implement_event_emitter(ts: TokenStream) -> TokenStream { implement_event_emitter_impl(ts) } #[proc_macro] pub fn implement_add_event_listeners(ts: TokenStream) -> TokenStream { implement_add_event_listeners_impl(ts) } #[proc_macro] pub fn implement_remove_event_listeners(ts: TokenStream) -> TokenStream { implement_remove_event_listeners_impl(ts) } #[proc_macro] pub fn implement_become_event_listener(ts: TokenStream) -> TokenStream { implement_become_event_listener_impl(ts) } #[proc_macro] pub fn implement_stop_being_event_listener(ts: TokenStream) -> TokenStream { implement_stop_being_event_listener_impl(ts) } #[proc_macro] pub fn implement_get_event_listeners(ts: TokenStream) -> TokenStream { implement_get_event_listeners_impl(ts) }