use super::{Method, PublicRole, Supertrait, TraitProperties};
pub struct ContractTrait {
pub docs: Vec<String>,
pub original_attributes: Vec<syn::Attribute>,
pub trait_name: proc_macro2::Ident,
pub supertraits: Vec<Supertrait>,
#[allow(dead_code)]
pub auto_inheritance_modules: Vec<Supertrait>,
pub methods: Vec<Method>,
pub trait_attributes: TraitProperties,
}
#[derive(Clone, Debug)]
pub struct DctAttribute {
pub ticker: String,
pub ty: proc_macro2::TokenStream,
}
impl ContractTrait {
pub fn callback_count(&self) -> usize {
self.methods
.iter()
.filter(|m| {
matches!(
m.public_role,
PublicRole::Callback(_) | PublicRole::CallbackPromise(_)
)
})
.count()
}
}