1#![no_std]
4
5extern crate alloc;
6extern crate proc_macro;
7
8mod de;
9mod en;
10
11use de::*;
12use en::*;
13use proc_macro::TokenStream;
14
15#[proc_macro_derive(Encodable)]
16pub fn encodable(input: TokenStream) -> TokenStream {
17 let ast = syn::parse(input).unwrap();
18 let gen = impl_encodable(&ast);
19 gen.into()
20}
21
22#[proc_macro_derive(EncodableWrapper)]
23pub fn encodable_wrapper(input: TokenStream) -> TokenStream {
24 let ast = syn::parse(input).unwrap();
25 let gen = impl_encodable_wrapper(&ast);
26 gen.into()
27}
28
29#[proc_macro_derive(Decodable)]
30pub fn decodable(input: TokenStream) -> TokenStream {
31 let ast = syn::parse(input).unwrap();
32 let gen = impl_decodable(&ast);
33 gen.into()
34}
35
36#[proc_macro_derive(DecodableWrapper)]
37pub fn decodable_wrapper(input: TokenStream) -> TokenStream {
38 let ast = syn::parse(input).unwrap();
39 let gen = impl_decodable_wrapper(&ast);
40 gen.into()
41}