pixelar 0.1.0

Show everyone the art hidden inside your code.
Documentation
use crate::ToPosition;

#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub struct LeftTopEdge;

impl<const H: usize, const W: usize> ToPosition<H, W> for LeftTopEdge {
    fn get_position(self) -> crate::Position {
        (0, 0).into()
    }
}

#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub struct LeftBottomEdge;

impl<const H: usize, const W: usize> ToPosition<H, W> for LeftBottomEdge {
    fn get_position(self) -> crate::Position {
        (H - 1, 0).into()
    }
}

#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub struct RightTopEdge;

impl<const H: usize, const W: usize> ToPosition<H, W> for RightTopEdge {
    fn get_position(self) -> crate::Position {
        (0, W - 1).into()
    }
}

#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub struct RightBottomEdge;

impl<const H: usize, const W: usize> ToPosition<H, W> for RightBottomEdge {
    fn get_position(self) -> crate::Position {
        (H - 1, W - 1).into()
    }
}

#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub struct Mid;

impl<const H: usize, const W: usize> ToPosition<H, W> for Mid {
    fn get_position(self) -> crate::Position {
        (H / 2, W / 2).into()
    }
}

#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub struct TopMid;

impl<const H: usize, const W: usize> ToPosition<H, W> for TopMid {
    fn get_position(self) -> crate::Position {
        (0, W / 2).into()
    }
}

#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub struct BottomMid;

impl<const H: usize, const W: usize> ToPosition<H, W> for BottomMid {
    fn get_position(self) -> crate::Position {
        (H, W / 2).into()
    }
}

#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub struct LeftMid;

impl<const H: usize, const W: usize> ToPosition<H, W> for LeftMid {
    fn get_position(self) -> crate::Position {
        (H / 2, 0).into()
    }
}

#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub struct RightMid;

impl<const H: usize, const W: usize> ToPosition<H, W> for RightMid {
    fn get_position(self) -> crate::Position {
        (H / 2, W).into()
    }
}