#![forbid(unsafe_code)]
#![deny(missing_docs)]
#![cfg_attr(docsrs, feature(doc_cfg))]
mod json;
mod mvalue;
mod prim_value;
use json::generate_to_json;
use mvalue::generate_to_mvalue;
use prim_value::generate_to_value_prim;
use proc_macro::TokenStream;
#[proc_macro_derive(MValueCompatible)]
pub fn mvalue_compatible_derive(input: TokenStream) -> TokenStream {
let ast = syn::parse(input).unwrap();
generate_to_mvalue(&ast)
}
#[proc_macro_derive(Properties)]
pub fn properties_derive(input: TokenStream) -> TokenStream {
let ast = syn::parse(input).unwrap();
generate_to_mvalue(&ast)
}
#[proc_macro_derive(MValue)]
pub fn mvalue_derive(input: TokenStream) -> TokenStream {
let ast = syn::parse(input).unwrap();
generate_to_mvalue(&ast)
}
#[proc_macro_derive(JSONProperties)]
pub fn json_properties_derive(input: TokenStream) -> TokenStream {
let ast = syn::parse(input).unwrap();
generate_to_json(&ast)
}
#[proc_macro_derive(ValuePrimitive)]
pub fn primitive_value_derive(input: TokenStream) -> TokenStream {
let ast = syn::parse(input).unwrap();
generate_to_value_prim(&ast)
}