use std::ops::BitOrAssign;
use super::*;
impl<T> BitOrAssign for Rectangle<T> where T: PartialOrd {
fn bitor_assign(&mut self, rhs: Self) {
if rhs.min.x < self.min.x {
self.min.x = rhs.min.x;
}
if rhs.min.y < self.min.y {
self.min.y = rhs.min.y;
}
if rhs.max.x > self.max.x {
self.max.x = rhs.max.x;
}
if rhs.max.y > self.max.y {
self.max.y = rhs.max.y;
}
}
}
impl<T> BitAndAssign for Rectangle<T> where T: PartialOrd {
fn bitand_assign(&mut self, rhs: Self) {
if rhs.min.x > self.min.x {
self.min.x = rhs.min.x;
}
if rhs.min.y > self.min.y {
self.min.y = rhs.min.y;
}
if rhs.max.x < self.max.x {
self.max.x = rhs.max.x;
}
if rhs.max.y < self.max.y {
self.max.y = rhs.max.y;
}
}
}