Hello, Rust
- Planted:
I just wrote my first Rust program. Er, it’s not really even my program—I just read an example from a book, tried to implement it from memory a few minutes later, ran cargo run, then used hints from the Rust compiler to fix my code. First impression…the hints are really good!
Here’s the function:
fn gcd(mut n: u64, mut m: u64) -> u64 {  assert!(n != 0 && m != 0);  while m != 0 {    if m < n {      let t = m;      m = n;      n = t;    }    m = m % n;  }  n}
I’m starting with O’Reilly’s Programming Rust, but I plan to go through The Book in parallel and see what sticks.
I also wrote copied my first test in Rust, which quickly caught a bug in my greatest common divisor implementation.
#[test]fn test_gcd() {  assert_eq!(gcd(14, 15), 1);  assert_eq!(gcd(2 * 3 * 5 * 11 * 13, 3 * 7 * 11 * 19), 3 * 11);}
It's pretty nice that cargo includes tests out of the box without having to install a dependency.