1use proc_macro::TokenStream;
2
3mod json;
4mod mvalue;
5mod prim_value;
6
7use json::generate_to_json;
8use mvalue::generate_to_mvalue;
9use prim_value::generate_to_value_prim;
10
11#[proc_macro_derive(MValueCompatible)]
13pub fn mvalue_compatible_derive(input: TokenStream) -> TokenStream {
14 let ast = syn::parse(input).unwrap();
15 generate_to_mvalue(&ast)
16}
17
18#[proc_macro_derive(Properties)]
20pub fn properties_derive(input: TokenStream) -> TokenStream {
21 let ast = syn::parse(input).unwrap();
22 generate_to_mvalue(&ast)
23}
24
25#[proc_macro_derive(MValue)]
27pub fn mvalue_derive(input: TokenStream) -> TokenStream {
28 let ast = syn::parse(input).unwrap();
29 generate_to_mvalue(&ast)
30}
31
32#[proc_macro_derive(JSONProperties)]
34pub fn json_properties_derive(input: TokenStream) -> TokenStream {
35 let ast = syn::parse(input).unwrap();
36 generate_to_json(&ast)
37}
38
39#[proc_macro_derive(ValuePrimitive)]
40pub fn primitive_value_derive(input: TokenStream) -> TokenStream {
41 let ast = syn::parse(input).unwrap();
42 generate_to_value_prim(&ast)
43}