superbitty_macros/
lib.rs

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}