1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

pub trait Solver<N, R, V> {
    
    fn best_result_objs(&self) -> &[N];

    
    fn best_result_objs_avg(&self) -> N;

    /// Do solving work after stoping criteria verification.
    fn do_work_after(&mut self);

    /// Do solving work before stoping criteria verification.
    fn do_work_before(&mut self);

    
    fn initialize(&mut self) {}

    
    fn into_result(self) -> R;

    
    fn terminate(&mut self) {}
}