use crate::TrialContext;
pub trait Suggest {
fn suggest_float(&mut self, name: &str, low: f64, high: f64) -> f64;
fn suggest_loguniform(&mut self, name: &str, low: f64, high: f64) -> f64;
fn suggest_int(&mut self, name: &str, low: i64, high: i64) -> i64;
fn suggest_categorical(&mut self, name: &str, choices: &[&str]) -> String;
fn report(&mut self, step: usize, value: f64);
fn should_prune(&mut self) -> bool;
}
impl Suggest for TrialContext<'_> {
fn suggest_float(&mut self, name: &str, low: f64, high: f64) -> f64 {
TrialContext::suggest_float(self, name, low, high)
}
fn suggest_loguniform(&mut self, name: &str, low: f64, high: f64) -> f64 {
TrialContext::suggest_loguniform(self, name, low, high)
}
fn suggest_int(&mut self, name: &str, low: i64, high: i64) -> i64 {
TrialContext::suggest_int(self, name, low, high)
}
fn suggest_categorical(&mut self, name: &str, choices: &[&str]) -> String {
TrialContext::suggest_categorical(self, name, choices)
}
fn report(&mut self, step: usize, value: f64) {
TrialContext::report(self, step, value)
}
fn should_prune(&mut self) -> bool {
TrialContext::should_prune(self)
}
}