data_classes_derive/
lib.rs1use 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 fields_attr;
12 pub mod parse_attr_tree;
13}
14
15#[proc_macro]
16pub fn init_struct(item: TokenStream) -> TokenStream {
17 r#impl::init_struct::main(item)
18}
19
20#[proc_macro_attribute]
21pub fn data(attr: TokenStream, item: TokenStream) -> TokenStream {
22 r#impl::data::main(attr, item)
23}
24
25#[proc_macro_attribute]
26pub fn key(attr: TokenStream, item: TokenStream) -> TokenStream {
27 r#impl::keyval::key(attr, item)
28}
29
30#[proc_macro_attribute]
31pub fn val(attr: TokenStream, item: TokenStream) -> TokenStream {
32 r#impl::keyval::val(attr, item)
33}
34
35#[proc_macro_attribute]
36pub fn default(attr: TokenStream, item: TokenStream) -> TokenStream {
37 r#impl::default::main(attr, item)
38}