multiversx_sc_codec_derive/
lib.rs1#![allow(unknown_lints)]
3#![allow(clippy::collapsible_if)]
4#![allow(clippy::manual_is_multiple_of)]
5
6extern crate proc_macro;
7
8mod nested_de_derive;
9mod nested_en_derive;
10mod top_de_derive;
11mod top_en_derive;
12mod util;
13
14use nested_de_derive::nested_decode_impl;
15use nested_en_derive::nested_encode_impl;
16use top_de_derive::{top_decode_impl, top_decode_or_default_impl};
17use top_en_derive::{top_encode_impl, top_encode_or_default_impl};
18
19use proc_macro::TokenStream;
20
21#[proc_macro_derive(NestedEncode)]
22pub fn nested_encode_derive(input: TokenStream) -> TokenStream {
23 let ast = syn::parse(input).unwrap();
24
25 nested_encode_impl(&ast)
26}
27
28#[proc_macro_derive(TopEncode)]
29pub fn top_encode_derive(input: TokenStream) -> TokenStream {
30 let ast = syn::parse(input).unwrap();
31
32 top_encode_impl(&ast)
33}
34
35#[proc_macro_derive(TopEncodeOrDefault)]
36pub fn top_encode_or_default_derive(input: TokenStream) -> TokenStream {
37 let ast = syn::parse(input).unwrap();
38
39 top_encode_or_default_impl(&ast)
40}
41
42#[proc_macro_derive(NestedDecode)]
43pub fn nested_decode_derive(input: TokenStream) -> TokenStream {
44 let ast = syn::parse(input).unwrap();
45
46 nested_decode_impl(&ast)
47}
48
49#[proc_macro_derive(TopDecode)]
50pub fn top_decode_derive(input: TokenStream) -> TokenStream {
51 let ast = syn::parse(input).unwrap();
52
53 top_decode_impl(&ast)
54}
55
56#[proc_macro_derive(TopDecodeOrDefault)]
57pub fn top_decode_or_default_derive(input: TokenStream) -> TokenStream {
58 let ast = syn::parse(input).unwrap();
59
60 top_decode_or_default_impl(&ast)
61}