1#![warn(rust_2018_idioms)]
3#![warn(unreachable_pub)]
4
5use proc_macro::TokenStream;
6
7mod derive_traversable;
8mod dispatch;
9mod message;
10
11#[proc_macro_attribute]
12pub fn message(attr: TokenStream, item: TokenStream) -> TokenStream {
13 message::message(attr, item)
14}
15
16#[proc_macro_derive(Traversable)]
17pub fn derive_traversable(item: TokenStream) -> TokenStream {
18 derive_traversable::derive_traversable(item)
19}
20
21#[proc_macro]
22pub fn dispatch(input: TokenStream) -> TokenStream {
23 dispatch::dispatch(input)
24}