use crate::*; /// A cardinal direction. #[derive(Copy, Clone, PartialEq)] pub enum Direction { North, South, West, East, } pub use self::Direction::*; impl Direction { #[inline] pub fn split_fixed (self, area: impl Area, a: N) -> ([N;4],[N;4]) { match self { North => ( [area.x(), (area.y()+area.h()).minus(a), area.w(), a], [area.x(), area.y(), area.w(), area.h().minus(a)], ), South => ( [area.x(), area.y(), area.w(), a], [area.x(), area.y() + a, area.w(), area.h().minus(a)], ), East => ( [area.x(), area.y(), a, area.h()], [area.x() + a, area.y(), area.w().minus(a), area.h()], ), West => ( [area.x() + area.w() - a, area.y(), a, area.h()], [area.x(), area.y(), area.w() - a, area.h()], ), } } }