First pass at a Rust implementation

First thing I've ever done with Rust. This is undoubtedly terrible.