use std::ops::{Add, AddAssign}; #[derive(Copy, Clone, Debug, Default)] pub struct ExaQueryResult { rows_affected: u64, } impl ExaQueryResult { pub fn new(rows_affected: u64) -> Self { Self { rows_affected } } pub fn rows_affected(&self) -> u64 { self.rows_affected } } impl Extend<ExaQueryResult> for ExaQueryResult { fn extend<T: IntoIterator<Item = ExaQueryResult>>(&mut self, iter: T) { for elem in iter { self.rows_affected += elem.rows_affected; } } } impl Add for ExaQueryResult { type Output = Self; fn add(self, rhs: Self) -> Self::Output { Self { rows_affected: self.rows_affected + rhs.rows_affected, } } } impl AddAssign for ExaQueryResult { fn add_assign(&mut self, rhs: Self) { self.rows_affected += rhs.rows_affected; } }