use proc_macro::TokenStream;
use proc_macro_error::proc_macro_error;
mod bitsize;
mod bitsize_internal;
mod try_from_bits;
mod from_bits;
mod debug_bits;
mod shared;
#[proc_macro_error]
#[proc_macro_attribute]
pub fn bitsize(args: TokenStream, item: TokenStream) -> TokenStream {
bitsize::bitsize(args.into(), item.into()).into()
}
#[proc_macro_error]
#[proc_macro_attribute]
pub fn bitsize_internal(args: TokenStream, item: TokenStream) -> TokenStream {
bitsize_internal::bitsize_internal(args.into(), item.into()).into()
}
#[proc_macro_error]
#[proc_macro_derive(TryFromBits, attributes(bitsize_internal))]
pub fn derive_try_from_bits(item: TokenStream) -> TokenStream {
try_from_bits::try_from_bits(item.into()).into()
}
#[proc_macro_error]
#[proc_macro_derive(FromBits, attributes(bitsize_internal))]
pub fn derive_from_bits(item: TokenStream) -> TokenStream {
from_bits::from_bits(item.into()).into()
}
#[proc_macro_error]
#[proc_macro_derive(DebugBits, attributes(bitsize_internal))]
pub fn debug_bits(item: TokenStream) -> TokenStream {
debug_bits::debug_bits(item.into()).into()
}