java_diff_utils_rs/algorithm/
change.rs1pub use crate::patch::delta_type::DeltaType;
4
5#[derive(Debug, Clone, Copy, PartialEq, Eq)]
7pub struct Change {
8 pub delta_type: DeltaType,
9 pub start_original: usize,
10 pub end_original: usize,
11 pub start_revised: usize,
12 pub end_revised: usize,
13}
14
15impl Change {
16 pub fn new(
17 delta_type: DeltaType,
18 start_original: usize,
19 end_original: usize,
20 start_revised: usize,
21 end_revised: usize,
22 ) -> Self {
23 debug_assert!(start_original <= end_original);
24 debug_assert!(start_revised <= end_revised);
25
26 Self {
27 delta_type,
28 start_original,
29 end_original,
30 start_revised,
31 end_revised,
32 }
33 }
34
35 pub fn original_len(&self) -> usize {
36 self.end_original - self.start_original
37 }
38
39 pub fn revised_len(&self) -> usize {
40 self.end_revised - self.start_revised
41 }
42
43 pub fn is_empty(&self) -> bool {
44 self.start_original == self.end_original && self.start_revised == self.end_revised
45 }
46}