use crate::color::Color;
use std::ops;
const CANVAS_SIZE: usize = 144 + 36;
#[derive(Debug, Default, Clone)]
pub struct Canvas {
pub(crate) data: Vec<Color>,
}
impl Canvas {
pub fn new() -> Self {
Self {
data: vec![Color::default(); CANVAS_SIZE],
}
}
pub fn fill(&mut self, color: Color) {
self.data.fill(color);
}
}
impl ops::Index<usize> for Canvas {
type Output = Color;
fn index(&self, index: usize) -> &Self::Output {
&self.data[index]
}
}
impl ops::IndexMut<usize> for Canvas {
fn index_mut(&mut self, index: usize) -> &mut Self::Output {
&mut self.data[index]
}
}