I'm learning the Rust programming language, I made this overnight to further that goal.
I got sloppy towards the end because I just wanted to finish. The only truly frustrating thing that I encountered was having to explicitly convert between types -- I chose a u8 for most things because nothing will be larger than 256, but this caused a lot of conversions to be required. I'm sure this could have used a rethink.