rich_derive 0.1.1

Implementation of #[derive(MetaType)]
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
//! This crate provides derive macros for `rich` traits.

use proc_macro::TokenStream;
use syn::{parse_macro_input, DeriveInput};

#[proc_macro_derive(MetaType, attributes(meta, rich))]
pub fn derive_meta_type(input: TokenStream) -> TokenStream {
  let mut input = parse_macro_input!(input as DeriveInput);
  let stream: proc_macro2::TokenStream =
    rich_derive_impl::meta_type::expand_derive_meta_type(&mut input).unwrap_or_else(syn::Error::into_compile_error);
  proc_macro::TokenStream::from(stream)
}