data_classes_derive/
lib.rs

1use proc_macro::TokenStream;
2
3mod r#impl {
4    pub mod data;
5    pub mod default;
6    pub mod init_struct;
7    pub mod keyval;
8}
9
10mod util {
11    pub mod parse_attr_tree;
12}
13
14#[proc_macro]
15pub fn init_struct(item: TokenStream) -> TokenStream {
16    r#impl::init_struct::main(item)
17}
18
19#[proc_macro_attribute]
20pub fn data(attr: TokenStream, item: TokenStream) -> TokenStream {
21    r#impl::data::main(attr, item)
22}
23
24#[proc_macro_attribute]
25pub fn key(attr: TokenStream, item: TokenStream) -> TokenStream {
26    r#impl::keyval::key(attr, item)
27}
28
29#[proc_macro_attribute]
30pub fn val(attr: TokenStream, item: TokenStream) -> TokenStream {
31    r#impl::keyval::val(attr, item)
32}
33
34#[proc_macro_attribute]
35pub fn default(attr: TokenStream, item: TokenStream) -> TokenStream {
36    r#impl::default::main(attr, item)
37}