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 28 29 30 31 32 33 34 35 36 37
#![recursion_limit="128"] extern crate proc_macro; extern crate proc_macro2; extern crate syn; extern crate quote; extern crate bin_codec; use proc_macro::TokenStream; pub(crate) enum Endin { Big, Little } mod error; pub(crate) mod utils; mod attribute; mod codec; #[proc_macro_derive(BinEncodeBe, attributes(bin))] pub fn derive_bin_encode_be(input: TokenStream) -> TokenStream { codec::encode(input, Endin::Big) } #[proc_macro_derive(BinEncodeLe, attributes(bin))] pub fn derive_bin_encode_le(input: TokenStream) -> TokenStream { codec::encode(input, Endin::Little) } #[proc_macro_derive(BinDecodeBe, attributes(bin))] pub fn derive_bin_decode_be(input: TokenStream) -> TokenStream { codec::decode(input, Endin::Big) } #[proc_macro_derive(BinDecodeLe, attributes(bin))] pub fn derive_bin_decode_le(input: TokenStream) -> TokenStream { codec::decode(input, Endin::Little) }