1
2
3
4
5
6
7
8
9
10
11
12
13
14
//! Evaluate [`Policy`](crate::Policy).
use crate::{Env, Policy};
use anyhow::Result;
mod default_evaluator;
pub use default_evaluator::DefaultEvaluator;

/// Evaluate [`Policy`](crate::Policy).
pub trait Evaluator<E: Env, P: Policy<E>> {
    /// Evaluate [`Policy`](crate::Policy).
    ///
    /// The caller of this method needs to handle the internal state of `policy`,
    /// like training/evaluation mode.
    fn evaluate(&mut self, policy: &mut P) -> Result<f32>;
}