1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
#![recursion_limit = "256"] extern crate proc_macro; mod ident_ext; #[macro_use] mod errors; mod define_specifiers; mod bitfield; mod bitfield_specifier; use proc_macro::TokenStream; #[proc_macro] pub fn define_specifiers(input: TokenStream) -> TokenStream { define_specifiers::generate(input.into()).into() } #[proc_macro_attribute] pub fn bitfield(args: TokenStream, input: TokenStream) -> TokenStream { bitfield::generate(args.into(), input.into()).into() } #[proc_macro_derive(BitfieldSpecifier)] pub fn bitfield_specifier(input: TokenStream) -> TokenStream { bitfield_specifier::generate(input.into()).into() }