use crate::GenerateCode;
use derive_more::From;
use proc_macro2::TokenStream as TokenStream2;
#[derive(From, Copy, Clone)]
pub struct Event<'a> {
item: &'a ir::Event,
}
impl GenerateCode for Event<'_> {
fn generate_code(&self) -> TokenStream2 {
let item = self.item.item();
let anonymous = self
.item
.anonymous()
.then(|| quote::quote! { #[ink(anonymous)] });
quote::quote! (
#[cfg_attr(feature = "std", derive(::ink::EventMetadata))]
#[derive(::ink::Event)]
#[::ink::scale_derive(Encode, Decode)]
#anonymous
#item
)
}
}