use std::ops::Add;
#[derive(Copy, Clone, PartialEq, Eq)]
pub struct Position {
pub row: u16,
pub column: u16,
}
impl Position {
pub fn from(row: u16, column: u16) -> Position {
Position { row, column }
}
}
impl Add for Position {
type Output = Position;
fn add(self, rhs: Self) -> Self::Output {
Position {
row: self.row + rhs.row,
column: self.column + rhs.column,
}
}
}
#[derive(Copy, Clone, PartialEq, Eq)]
pub struct Size {
pub rows: u16,
pub columns: u16,
}
impl Size {
pub fn from(rows: u16, columns: u16) -> Size {
Size { rows, columns }
}
}
impl Size {
pub fn area(&self) -> u16 {
self.rows * self.columns
}
}