1#![no_std]
12
13extern crate alloc;
14extern crate proc_macro;
15
16mod de;
17mod en;
18
19use de::*;
20use en::*;
21use proc_macro::TokenStream;
22
23#[proc_macro_derive(Encodable, attributes(rlp))]
24pub fn encodable(input: TokenStream) -> TokenStream {
25 let ast = syn::parse(input).unwrap();
26 let gen = impl_encodable(&ast);
27 gen.into()
28}
29
30#[proc_macro_derive(EncodableWrapper, attributes(rlp))]
31pub fn encodable_wrapper(input: TokenStream) -> TokenStream {
32 let ast = syn::parse(input).unwrap();
33 let gen = impl_encodable_wrapper(&ast);
34 gen.into()
35}
36
37#[proc_macro_derive(MaxEncodedLen, attributes(rlp))]
38pub fn max_encoded_len(input: TokenStream) -> TokenStream {
39 let ast = syn::parse(input).unwrap();
40 let gen = impl_max_encoded_len(&ast);
41 gen.into()
42}
43
44#[proc_macro_derive(Decodable, attributes(rlp))]
45pub fn decodable(input: TokenStream) -> TokenStream {
46 let ast = syn::parse(input).unwrap();
47 let gen = impl_decodable(&ast);
48 gen.into()
49}
50
51#[proc_macro_derive(DecodableWrapper, attributes(rlp))]
52pub fn decodable_wrapper(input: TokenStream) -> TokenStream {
53 let ast = syn::parse(input).unwrap();
54 let gen = impl_decodable_wrapper(&ast);
55 gen.into()
56}