pub trait TriggerBehavior:
Debug
+ DynClone
+ Send
+ Sync
+ Serialize
+ Deserialize {
// Required methods
fn trigger_type(&self) -> TriggerType;
fn perform_test(
&self,
trigger: &Trigger,
run_params: &RunParams,
game: &GameState,
) -> bool;
fn set_triggering_objects(
&self,
trigger: &Trigger,
sa: &mut SpellAbility,
params: &RunParams,
game: &GameState,
);
fn get_important_stack_objects(
&self,
trigger: &Trigger,
sa: &SpellAbility,
) -> String;
// Provided methods
fn origin_zone(&self) -> Option<ZoneType> { ... }
fn destination_zone(&self) -> Option<ZoneType> { ... }
fn drawn_number(&self) -> Option<i32> { ... }
}Required Methods§
fn trigger_type(&self) -> TriggerType
Sourcefn perform_test(
&self,
trigger: &Trigger,
run_params: &RunParams,
game: &GameState,
) -> bool
fn perform_test( &self, trigger: &Trigger, run_params: &RunParams, game: &GameState, ) -> bool
Java’s Trigger.performTest(). The trigger parameter provides access
to the parent Trigger’s params, base, and host card — equivalent of
Java’s this in the trigger subclass.
fn set_triggering_objects( &self, trigger: &Trigger, sa: &mut SpellAbility, params: &RunParams, game: &GameState, )
fn get_important_stack_objects( &self, trigger: &Trigger, sa: &SpellAbility, ) -> String
Provided Methods§
fn origin_zone(&self) -> Option<ZoneType>
fn destination_zone(&self) -> Option<ZoneType>
fn drawn_number(&self) -> Option<i32>
Trait Implementations§
Source§impl<'typetag> Serialize for dyn TriggerBehavior + 'typetag
impl<'typetag> Serialize for dyn TriggerBehavior + 'typetag
Source§impl<'typetag> Serialize for dyn TriggerBehavior + Send + 'typetag
impl<'typetag> Serialize for dyn TriggerBehavior + Send + 'typetag
Source§impl<'typetag> Serialize for dyn TriggerBehavior + Sync + 'typetag
impl<'typetag> Serialize for dyn TriggerBehavior + Sync + 'typetag
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".