use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub struct Size {
pub width: u32,
pub height: u32,
}
impl Size {
pub const fn new(width: u32, height: u32) -> Self {
Self { width, height }
}
pub fn area(&self) -> u32 {
self.width * self.height
}
}
impl std::ops::Mul<u32> for Size {
type Output = Self;
fn mul(self, rhs: u32) -> Self::Output {
Self {
width: self.width * rhs,
height: self.height * rhs,
}
}
}
impl std::ops::Div<u32> for Size {
type Output = Self;
fn div(self, rhs: u32) -> Self::Output {
Self {
width: self.width / rhs,
height: self.height / rhs,
}
}
}