1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
use super::DataKeeper;
#[derive(Debug, Copy, Clone)]
pub enum PreparationScheme {
Previous,
Current,
Both,
}
pub(super) fn prepare_positions_mapping(scheme: PreparationScheme, data_keeper: &mut DataKeeper) {
use PreparationScheme::*;
let new_pos = data_keeper.result_trace_next_pos();
match scheme {
Previous => {
let prev_pos = data_keeper.prev_slider().position() - 1;
data_keeper.new_to_prev_pos.insert(new_pos, prev_pos);
}
Current => {
let current_pos = data_keeper.current_slider().position() - 1;
data_keeper.new_to_current_pos.insert(new_pos, current_pos);
}
Both => {
let prev_pos = data_keeper.prev_slider().position() - 1;
let current_pos = data_keeper.current_slider().position() - 1;
data_keeper.new_to_prev_pos.insert(new_pos, prev_pos);
data_keeper.new_to_current_pos.insert(new_pos, current_pos);
}
};
}