Skip to main content

battlesnake/
moves.rs

1use serde::Serialize;
2
3#[derive(Clone, Copy, Debug, Serialize)]
4#[serde(rename_all = "lowercase")]
5pub enum Direction {
6    Up,
7    Down,
8    Left,
9    Right
10}
11
12
13#[derive(Debug, Serialize)]
14pub struct Movement {
15    #[serde(rename = "move")]
16    pub movement: Direction,
17}
18
19impl Movement {
20    pub const UP: Movement = Movement { movement: Direction::Up };
21    pub const DOWN: Movement = Movement { movement: Direction::Down };
22    pub const LEFT: Movement = Movement { movement: Direction::Left };
23    pub const RIGHT: Movement = Movement { movement: Direction::Right };
24
25    pub fn new(direction: Direction) -> Movement {
26        Movement { movement: direction }
27    }
28
29}