holochain_serialized_bytes_derive/
lib.rs

1#![recursion_limit = "128"]
2#![warn(unused_extern_crates)]
3
4#[macro_use]
5extern crate quote;
6
7use proc_macro::TokenStream;
8fn impl_default_serialized_bytes_macro(ast: &syn::DeriveInput) -> TokenStream {
9    let name = &ast.ident;
10    let gen = quote! {
11        holochain_serial!(#name);
12    };
13    gen.into()
14}
15
16#[proc_macro_derive(SerializedBytes)]
17pub fn default_holochain_serialized_bytes_derive(input: TokenStream) -> TokenStream {
18    // Construct a represntation of Rust code as a syntax tree
19    // that we can manipulate
20    let ast = syn::parse(input).unwrap();
21
22    // Build the trait implementation
23    impl_default_serialized_bytes_macro(&ast)
24}