1use kernel::*;
16use search::monitor::*;
17use search::search_tree_visitor::Status;
18
19pub struct Statistics {
20 pub num_solution: usize,
21 pub num_failed_node: usize,
22 pub num_prune: usize,
23 pub num_nodes: usize
24}
25
26impl Statistics {
27 pub fn new() -> Self {
28 Statistics {
29 num_solution: 0,
30 num_failed_node: 0,
31 num_prune: 0,
32 num_nodes: 0
33 }
34 }
35}
36
37impl<Space:Freeze> SearchMonitor<Space> for Statistics {
38 fn on_node(&mut self, space: &Space, status: &Status<Space>) {
39 println!("\n\nLLLL\n\n");
40 self.num_nodes += 1;
41 self.dispatch_node(space, status)
42 }
43
44 fn on_solution(&mut self, _space: &Space) {
45 self.num_solution += 1;
46 }
47 fn on_failure(&mut self, _space: &Space) {
48 self.num_failed_node += 1;
49 }
50 fn on_prune(&mut self, _space: &Space) {
51 self.num_prune += 1;
52 }
53}