Rust MD5

As a little project to get started with learning Rust, I knocked together a simple implementation of MD5. Since this is a toy project, I made no attempt to obtain high-performance. For example, I simply read all input data before starting processing, rather than streaming.

The usage should be familiar from md5sum:

> echo 'hi there' | ./target/debug/rust_md5
12f6bb1941df66b8f138a446d4e8670c -

or

> echo 'unicode, ok ✔' > file.txt
> ./target/debug/rust_md5 file.txt
34a7fafe48ccb9d3f18f09949cbfa96f file.txt

Take a look at the implementation available on GitHub, here. One part that I think is quite cool is the usage of macros to make the specification of the operations of each round quite a bit neater.