use proc_macro2::{Span, TokenStream};
use quote::quote;
use syn::ItemStruct;
pub fn expand(attr: TokenStream, item: TokenStream) -> syn::Result<TokenStream> {
if !attr.is_empty() {
return Err(syn::Error::new(
Span::call_site(),
"#[payload] takes no arguments",
));
}
let item_struct: ItemStruct = syn::parse2(item)?;
Ok(quote! {
#[derive(
::coralstack_cmd_ipc::serde::Serialize,
::coralstack_cmd_ipc::serde::Deserialize,
::coralstack_cmd_ipc::schemars::JsonSchema,
)]
#[serde(crate = "::coralstack_cmd_ipc::serde")]
#[schemars(crate = "::coralstack_cmd_ipc::schemars")]
#item_struct
})
}