use enum_dispatch::enum_dispatch; pub mod damage_type; pub mod target; pub mod triggering_signal; pub mod zone; pub mod triggerrable_effect; pub mod phase_effect; pub mod checker_effect; pub mod direct_effect; #[enum_dispatch(EffectTrait)] pub enum Effect { TriggerrableEffect, PhaseEffect, CheckerEffect, DirectEffect, } #[enum_dispatch] pub trait EffectTrait {} type TriggerrableEffect = triggerrable_effect::TriggerrableEffect; type PhaseEffect = phase_effect::PhaseEffect; type CheckerEffect = checker_effect::CheckerEffect; type DirectEffect = direct_effect::DirectEffect; pub struct EffectStack { pub effects: Vec<Effect>, }