1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
#![recursion_limit = "128"] extern crate quote; #[macro_use] extern crate syn; extern crate proc_macro; extern crate proc_macro2; pub(crate) mod attr; mod binding_derive; use proc_macro::TokenStream; #[proc_macro_derive(ExpressionBinding, attributes(expression))] pub fn expression_binding_derive(input: TokenStream) -> TokenStream { let ast = syn::parse(input).unwrap(); binding_derive::impl_derive_expression_binding(&ast) }