extern crate crossterm; use self::crossterm::terminal::{terminal, ClearType}; use self::crossterm::style::{Color, StyledObject, ObjectStyle }; use self::crossterm::Context; use std::fmt::Debug; use std::fmt; #[derive(Copy, Clone,Debug)] pub enum Direction { Up = 0, Down = 1, Left = 2, Right = 3 } #[derive(Copy, Clone, Debug)] pub struct Position { pub x: usize, pub y: usize } impl Position { pub fn new(x: usize, y: usize) -> Position { Position { x, y } } } #[derive(Copy, Clone)] pub struct Size { pub width: usize, pub height: usize } impl Size { pub fn new(width: usize, height: usize) -> Size { Size {width,height} } } pub struct Cell { pub position: Position, pub color: Color, pub look: char, pub visited: bool } impl Cell { pub fn new(position: Position, color: Color, look: char, visited: bool) -> Cell { Cell { position, color, look, visited } } }