This effort was heavily influenced by quii. His book, found here helped me to become significantly more proficient at both Go, and Test Driven Development.
From Rust by Example:
Rust is a modern systems programming language focusing on safety, speed, and concurrency. It accomplishes these goals by being memory safe without garbage collection.
I chose Rust for this exercise because I am interested in it from a systems programming perspective. Rust promises incredible performance to those who take the time to learn the details of how it works.
I am not a vehement acolyte of TDD. I am a consistent practitioner, but do not adhere to the practice 100% of the time. I do, however, believe that practicing TDD gives a developer more perspective into what they are trying to accomplish with a bit of code or a feature, and the ways that it can fail. In addition, TDD turns the coder's attention to testing early in the process, and when your attention is on testing, you invariably think more about the ways your code can fail, and I think both of these are positive things. Lastly, if you are relatively new to unit testing in general, practicing TDD will give you a ton of perspective in to how and why we test.
I am not an expert in Rust. In fact, as of beginning this little endeavor, I am a complete newcomer to Rust. I am working on this book as a way to learn the language, and because of this, I will make mistakes. At times I will say things confidently that are either true only in some situations, or are entirely false. If you catch any of this errata, please open an issue at https://github.com/aftertale/learn-rust-with-tests/issues