use ink_analyzer_macro::{FromInkAttribute, FromSyntax};
use ra_ap_syntax::ast::Struct;
use crate::{AsInkStruct, FromInkAttribute, FromSyntax, InkAttrData, InkAttribute, Topic};
#[derive(Debug, Clone, PartialEq, Eq, FromInkAttribute, FromSyntax)]
pub struct Event {
#[arg_kind(Event)]
ink_attr: InkAttrData<Struct>,
#[arg_kind(Topic)]
topics: Vec<Topic>,
}
impl AsInkStruct for Event {
fn struct_item(&self) -> Option<&Struct> {
self.ink_attr.parent_ast()
}
}
impl Event {
pub fn topics(&self) -> &Vec<Topic> {
&self.topics
}
}