mm1_proc_macros/
lib.rs

1// #![warn(missing_docs)]
2#![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}