gemini_engine/primitives/
pixel.rsuse crate::{containers::CanCollide, core::{CanDraw, ColChar, Vec2D}};
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub struct Pixel {
    pub pos: Vec2D,
    pub fill_char: ColChar,
}
impl Pixel {
    #[must_use]
    pub const fn new(pos: Vec2D, fill_char: ColChar) -> Self {
        Self { pos, fill_char }
    }
}
impl CanDraw for Pixel {
    fn draw_to(&self, canvas: &mut impl crate::core::Canvas) {
        canvas.plot(self.pos, self.fill_char);
    }
}
impl CanCollide for Pixel {
    fn collides_with_pos(&self, pos: Vec2D) -> bool {
        self.pos == pos
    }
}