add serde derivation alias macro (#333)

This commit is contained in:
Frederik-Baetens
2020-11-13 23:36:59 +01:00
committed by GitHub
parent 1d87c14262
commit bc8128af69
4 changed files with 71 additions and 0 deletions

View File

@@ -215,6 +215,19 @@ impl Parse for DeriveSerde {
}
}
/// Generates:
/// - derive of Debug, serde Serialize & Deserialize
/// - serde crate annotation
#[proc_macro_attribute]
pub fn derive_serde(_attr: TokenStream, item: TokenStream) -> TokenStream {
let mut gen: proc_macro2::TokenStream = quote! {
#[derive(tarpc::serde::Serialize, tarpc::serde::Deserialize)]
#[serde(crate = "tarpc::serde")]
};
gen.extend(proc_macro2::TokenStream::from(item));
proc_macro::TokenStream::from(gen)
}
/// Generates:
/// - service trait
/// - serve fn