use crate::schema;
#[derive(Debug, Clone, Copy, Default, PartialEq, Eq)]
pub struct LineCounts {
pub adds: usize,
pub dels: usize,
}
impl LineCounts {
pub fn of_hunk(h: &schema::HunkEntry) -> Self {
LineCounts {
adds: h.new_count as usize,
dels: h.old_count as usize,
}
}
}
impl std::ops::Add for LineCounts {
type Output = LineCounts;
fn add(self, rhs: LineCounts) -> LineCounts {
LineCounts {
adds: self.adds + rhs.adds,
dels: self.dels + rhs.dels,
}
}
}
impl std::iter::Sum for LineCounts {
fn sum<I: Iterator<Item = LineCounts>>(iter: I) -> LineCounts {
iter.fold(LineCounts::default(), |a, b| a + b)
}
}