1#![feature(box_patterns)]
6#![warn(trivial_casts, rust_2018_idioms)]
7
8use proc_macro::TokenStream;
9
10mod derive;
11mod functions;
12
13#[proc_macro_derive(Interactive)]
14pub fn derive_interactive(input: TokenStream) -> TokenStream {
15 derive::derive_interactive(input)
16}
17
18#[proc_macro_derive(InteractiveRoot)]
19pub fn derive_interactive_root(input: TokenStream) -> TokenStream {
20 derive::derive_root(input)
21}
22
23#[proc_macro_derive(PartialDebug)]
24pub fn derive_partial_debug(input: TokenStream) -> TokenStream {
25 derive::derive_partial_debug(input)
26}
27
28#[allow(non_snake_case)]
29#[proc_macro_attribute]
30pub fn Methods(_attr: TokenStream, input: TokenStream) -> TokenStream {
31 functions::methods(input)
32}
33
34#[allow(non_snake_case)]
35#[proc_macro_attribute]
36pub fn Function(_attr: TokenStream, input: TokenStream) -> TokenStream {
37 functions::function(input)
38}