enum_bitset_derive/
lib.rs

1//! Proc macros for the [enum-bitset](https://crates.io/crates/enum-bitset) crate.
2//!
3//! You do not need to depend directly on this crate, the macro is conveniently reexported by the [enum-bitset](https://crates.io/crates/enum-bitset) crate.
4
5
6extern crate proc_macro;
7use proc_macro::TokenStream;
8use syn::{DeriveInput, parse_macro_input};
9
10mod derive;
11
12#[proc_macro_derive(EnumBitset, attributes(bitset))]
13pub fn enum_bitset(input: TokenStream) -> TokenStream {
14    let input = parse_macro_input!(input as DeriveInput);
15
16    match derive::derive_enum_bitset(input) {
17        Ok(tokens) => tokens.into(),
18        Err(err) => err.to_compile_error().into(),
19    }
20}