//! Lightweight metadata about an algorithm — its short canonical name //! and the seed driving the current run. //! //! `AlgorithmInfo` is separate from [`Optimizer

`](super::Optimizer) //! so multi-fidelity algorithms (which use `PartialProblem` instead of //! `Problem`) can implement it uniformly. Every built-in algorithm in //! `heuropt` implements `AlgorithmInfo`; the explorer JSON export reads //! these methods to populate `algorithm` and `seed` fields in the //! exported run metadata. /// Algorithm metadata used by tooling such as the explorer JSON export. /// /// Implementors return a short canonical name like `"Nsga3"` or /// `"DifferentialEvolution"`, and the seed driving their current run /// when applicable. pub trait AlgorithmInfo { /// Short, canonical algorithm name — e.g. `"Nsga3"`, /// `"DifferentialEvolution"`, `"BayesianOpt"`. fn name(&self) -> &'static str; /// The deterministic seed driving this run, if the algorithm uses /// one. Default: `None`. Built-in algorithms return /// `Some(self.config.seed)`. fn seed(&self) -> Option { None } }