43 lines
840 B
Rust
43 lines
840 B
Rust
|
use std::fmt;
|
||
|
mod helpers;
|
||
|
|
||
|
enum Direction {
|
||
|
North,
|
||
|
East,
|
||
|
South,
|
||
|
West
|
||
|
}
|
||
|
|
||
|
|
||
|
struct Position {
|
||
|
x: i32,
|
||
|
y: i32,
|
||
|
dir: Direction,
|
||
|
}
|
||
|
|
||
|
impl fmt::Display for Position {
|
||
|
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
||
|
write!(f, "({}, {}: {})", self.x, self.y, string_dir(self.dir))
|
||
|
}
|
||
|
}
|
||
|
|
||
|
fn string_dir(d: Direction) -> String {
|
||
|
match d {
|
||
|
Direction::North => String::from("North"),
|
||
|
Direction::East => String::from("East"),
|
||
|
Direction::South => String::from("South"),
|
||
|
Direction::West => String::from("West"),
|
||
|
}
|
||
|
}
|
||
|
|
||
|
fn main() {
|
||
|
let input = helpers::read_std_in();
|
||
|
let split = input.split(",");
|
||
|
for mut s in split {
|
||
|
s = s.trim();
|
||
|
println!("{}", s);
|
||
|
}
|
||
|
let p = Position{ x: 0, y: 0, dir: Direction::North };
|
||
|
println!("{}", p)
|
||
|
}
|