1use proc_macro::TokenStream;
2
3mod value;
4
5#[proc_macro_derive(FromGValue)]
6pub fn derive_from_gvalue(input: TokenStream) -> TokenStream {
7 let input = syn::parse_macro_input!(input as syn::DeriveInput);
8
9 match value::derive(&input) {
10 Ok(ts) => ts.into(),
11 Err(e) => e.to_compile_error().into(),
12 }
13}
14
15#[proc_macro_derive(FromGMap)]
16pub fn derive_from_gmap(input: TokenStream) -> TokenStream {
17 let input = syn::parse_macro_input!(input as syn::DeriveInput);
18
19 match value::derive_map(&input) {
20 Ok(ts) => ts.into(),
21 Err(e) => e.to_compile_error().into(),
22 }
23}