tree_buf_macros/
lib.rs

1extern crate proc_macro;
2extern crate syn;
3#[macro_use]
4extern crate quote;
5
6mod utils;
7mod decode;
8mod encode;
9
10use {
11    decode::impl_decode_macro,
12    encode::impl_encode_macro,
13    syn::{parse_macro_input, DeriveInput},
14};
15
16
17
18#[proc_macro_derive(Encode)]
19pub fn encode_macro_derive(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
20    let ast = parse_macro_input!(input as DeriveInput);
21    let output = impl_encode_macro(&ast);
22    proc_macro::TokenStream::from(output)
23}
24
25#[proc_macro_derive(Decode)]
26pub fn decode_macro_derive(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
27    let ast = parse_macro_input!(input as DeriveInput);
28    let output = impl_decode_macro(&ast);
29    proc_macro::TokenStream::from(output)
30}