fadroma_proc_message/
lib.rs

1use quote::quote;
2use proc_macro::TokenStream;
3
4#[proc_macro_attribute]
5pub fn message (
6    _:    TokenStream, // takes no arguments
7    body: TokenStream  // annotates a struct declaration
8) -> TokenStream {
9    let body: proc_macro2::TokenStream = body.into();
10    TokenStream::from(quote! {
11        #[derive(Clone,Debug,PartialEq,serde::Serialize,serde::Deserialize,schemars::JsonSchema)]
12        #[serde(rename_all="snake_case")]
13        #body
14    })
15}