voidmc_codec_macros/
lib.rs1use proc_macro::TokenStream;
2use syn::{parse_macro_input, DeriveInput};
3
4mod attrs;
5mod decode;
6mod encode;
7
8#[proc_macro_derive(Encode, attributes(codec))]
9pub fn derive_encode(input: TokenStream) -> TokenStream {
10 let input = parse_macro_input!(input as DeriveInput);
11 encode::derive_encode(&input)
12 .unwrap_or_else(|err| err.to_compile_error())
13 .into()
14}
15
16#[proc_macro_derive(Decode, attributes(codec))]
17pub fn derive_decode(input: TokenStream) -> TokenStream {
18 let input = parse_macro_input!(input as DeriveInput);
19 decode::derive_decode(&input)
20 .unwrap_or_else(|err| err.to_compile_error())
21 .into()
22}