1#![warn(clippy::all, clippy::pedantic, clippy::nursery)]
20
21extern crate proc_macro;
22
23mod de;
24mod en;
25
26use de::{impl_decodable, impl_decodable_wrapper};
27use en::{impl_encodable, impl_encodable_wrapper};
28use proc_macro::TokenStream;
29
30#[proc_macro_derive(RlpEncodable, attributes(rlp))]
31pub fn encodable(input: TokenStream) -> TokenStream {
32 let ast = syn::parse(input).unwrap();
33 let gen = impl_encodable(&ast);
34 gen.into()
35}
36
37#[proc_macro_derive(RlpEncodableWrapper)]
38pub fn encodable_wrapper(input: TokenStream) -> TokenStream {
39 let ast = syn::parse(input).unwrap();
40 let gen = impl_encodable_wrapper(&ast);
41 gen.into()
42}
43
44#[proc_macro_derive(RlpDecodable, 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(RlpDecodableWrapper)]
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}