Skip to main content

Evaluator

Trait Evaluator 

Source
pub trait Evaluator<Player, State, Trigger> {
    // Required method
    fn evaluate(
        &self,
        ctx: &AchievementContext<'_, Player, State, Trigger>,
    ) -> impl Into<EvalResult>;
}
Expand description

Trait for statically typed achievement evaluators.

This is the primary abstraction for writing custom logic to evaluate whether an achievement should be awarded.

Required Methods§

Source

fn evaluate( &self, ctx: &AchievementContext<'_, Player, State, Trigger>, ) -> impl Into<EvalResult>

Evaluate the achievement for the given context.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

Source§

impl<Player, Metadata, Trigger> Evaluator<Player, Metadata, Trigger> for SpellingBeeEvaluator

Source§

impl<Player, Metadata, Trigger> Evaluator<Player, Metadata, Trigger> for TimeEvaluator

Source§

impl<Player, Metadata, Trigger> Evaluator<Player, Metadata, Trigger> for TriggerEvaluator<Trigger>
where Trigger: PartialEq + Copy + Send + Sync,

Source§

impl<Player, State, Trigger, C, DC, P> Evaluator<Player, State, Trigger> for StreakEvaluator<Player, State, Trigger, C, DC, P>
where DC: for<'a> Fn(&'a AchievementContext<'_, Player, State, Trigger>) -> DerivedCtx<'a, C> + Send + Sync + 'static, P: for<'a> Fn(&Player, &'a C) -> bool + Send + Sync + 'static,

Source§

impl<Player, State, Trigger, V, C, DC, E> Evaluator<Player, State, Trigger> for DistinctValuesEvaluator<Player, State, Trigger, V, C, DC, E>
where DC: for<'a> Fn(&'a AchievementContext<'_, Player, State, Trigger>) -> DerivedCtx<'a, C> + Send + Sync + 'static, E: for<'a> Fn(&'a Player, &'a C) -> ExtractResult<V> + Send + Sync + 'static, V: Eq + Hash + 'static,

Source§

impl<Player: PlayerInfo, Metadata, Trigger> Evaluator<Player, Metadata, Trigger> for MinBloopsEvaluator