//! Common interface over all search strategy engines.
//! Enables runtime algorithm swapping via `Box<dyn Strategy<U>>`.
use crateGaError;
use crateChromosomeT;
/// Common interface over all search strategy engines. Enables runtime algorithm swapping via `Box<dyn Strategy<U>>`.
///
/// # Examples
///
/// ```rust,no_run
/// use genetic_algorithms::traits::Strategy;
/// use genetic_algorithms::chromosomes::Binary;
/// use genetic_algorithms::error::GaError;
///
/// struct MyStrategy;
///
/// impl Strategy<Binary> for MyStrategy {
/// fn run(&mut self) -> Result<(), GaError> { Ok(()) }
/// fn best(&self) -> Option<&Binary> { None }
/// }
/// ```