border_core/
evaluator.rs

1//! Evaluate [`Policy`].
2use crate::{Env, Policy};
3use anyhow::Result;
4mod default_evaluator;
5pub use default_evaluator::DefaultEvaluator;
6
7/// Evaluate [`Policy`].
8pub trait Evaluator<E: Env, P: Policy<E>> {
9    /// Evaluate [`Policy`].
10    ///
11    /// The caller of this method needs to handle the internal state of `policy`,
12    /// like training/evaluation mode.
13    fn evaluate(&mut self, policy: &mut P) -> Result<f32>;
14}