inception_macros/
lib.rs

1#![allow(unused_attributes)]
2extern crate quote;
3extern crate syn;
4
5use proc_macro::TokenStream;
6
7mod derive;
8mod inception;
9mod primitive;
10
11#[proc_macro_derive(Inception, attributes(inception))]
12pub fn derive(input: TokenStream) -> TokenStream {
13    derive::State::gen(input)
14}
15
16#[proc_macro_attribute]
17pub fn inception(attr: TokenStream, item: TokenStream) -> TokenStream {
18    inception::State::gen(attr, item)
19}
20
21#[proc_macro_attribute]
22pub fn primitive(attr: TokenStream, item: TokenStream) -> TokenStream {
23    primitive::State::gen(attr, item)
24}