Merge pull request #2767 from airstrike/impl-division

Implement division operation for `Rectangle`, `Size` and `Vector`
This commit is contained in:
Héctor 2025-11-20 02:18:06 +01:00 committed by GitHub
commit 281e58da8e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 25 additions and 16 deletions

View file

@ -394,19 +394,3 @@ where
}
}
}
impl<T> std::ops::Mul<Vector<T>> for Rectangle<T>
where
T: std::ops::Mul<Output = T> + Copy,
{
type Output = Rectangle<T>;
fn mul(self, scale: Vector<T>) -> Self {
Rectangle {
x: self.x * scale.x,
y: self.y * scale.y,
width: self.width * scale.x,
height: self.height * scale.y,
}
}
}

View file

@ -150,6 +150,20 @@ where
}
}
impl<T> std::ops::Div<T> for Size<T>
where
T: std::ops::Div<Output = T> + Copy,
{
type Output = Size<T>;
fn div(self, rhs: T) -> Self::Output {
Size {
width: self.width / rhs,
height: self.height / rhs,
}
}
}
impl<T> std::ops::Mul<Vector<T>> for Size<T>
where
T: std::ops::Mul<Output = T> + Copy,

View file

@ -64,6 +64,17 @@ where
}
}
impl<T> std::ops::Div<T> for Vector<T>
where
T: std::ops::Div<Output = T> + Copy,
{
type Output = Self;
fn div(self, scale: T) -> Self {
Self::new(self.x / scale, self.y / scale)
}
}
impl<T> Default for Vector<T>
where
T: Default,