data-classes-derive 0.0.0-11

Derive macros for the data-classes crate
Documentation
use proc_macro::TokenStream;

mod r#impl {
    pub mod data;
    pub mod default;
    pub mod derive;
    pub mod init_struct;
    pub mod keyval;
}

mod util {
    pub mod fields_attr;
    pub mod parse_attr_tree;
}

#[proc_macro]
pub fn init_struct(item: TokenStream) -> TokenStream {
    r#impl::init_struct::main(item)
}

#[proc_macro_attribute]
pub fn data(attr: TokenStream, item: TokenStream) -> TokenStream {
    r#impl::data::main(attr, item)
}

#[proc_macro_attribute]
pub fn key(attr: TokenStream, item: TokenStream) -> TokenStream {
    r#impl::keyval::key(attr, item)
}

#[proc_macro_attribute]
pub fn val(attr: TokenStream, item: TokenStream) -> TokenStream {
    r#impl::keyval::val(attr, item)
}

#[proc_macro_attribute]
pub fn default(attr: TokenStream, item: TokenStream) -> TokenStream {
    r#impl::default::main(attr, item)
}

#[proc_macro_derive(ToPrev)]
pub fn derive_to_prev(item: TokenStream) -> TokenStream {
    r#impl::derive::to_prev(item)
}

#[proc_macro_derive(ToNext)]
pub fn derive_to_next(item: TokenStream) -> TokenStream {
    r#impl::derive::to_next(item)
}

#[cfg(feature = "rand")]
#[proc_macro_derive(ToRandom)]
pub fn derive_to_random(item: TokenStream) -> TokenStream {
    r#impl::derive::to_random(item)
}