1#![forbid(unsafe_code, rust_2018_idioms)]
2
3mod bit_field_compatible;
4mod bitfields;
5mod utils;
6
7use proc_macro::TokenStream;
8
9#[proc_macro_derive(BitFieldCompatible, attributes(bit_field))]
10pub fn bit_field_compatible(item: TokenStream) -> TokenStream {
11 bit_field_compatible::bit_field_compatible(item.into())
12 .unwrap_or_else(|err| err.into_compile_error())
13 .into()
14}
15
16#[proc_macro]
17pub fn bitfields(item: TokenStream) -> TokenStream {
18 bitfields::bitfields_impl(item.into()).unwrap_or_else(|err| err.into_compile_error()).into()
19}