gcd: Update for Rust 2018.

pull/13/head
Jim Blandy 3 years ago
parent be527001d0
commit 4e2e6c3630

@ -2,5 +2,6 @@
name = "gcd" name = "gcd"
version = "0.1.0" version = "0.1.0"
authors = ["You <you@example.com>"] authors = ["You <you@example.com>"]
edition = "2018"
[dependencies] [dependencies]

@ -1,3 +1,6 @@
#![warn(rust_2018_idioms)]
#![allow(elided_lifetimes_in_paths)]
fn gcd(mut n: u64, mut m: u64) -> u64 { fn gcd(mut n: u64, mut m: u64) -> u64 {
assert!(n != 0 && m != 0); assert!(n != 0 && m != 0);
while m != 0 { while m != 0 {
@ -20,19 +23,19 @@ fn test_gcd() {
3 * 11); 3 * 11);
} }
use std::io::Write;
use std::str::FromStr; use std::str::FromStr;
use std::env;
fn main() { fn main() {
let mut numbers = Vec::new(); let mut numbers = Vec::new();
for arg in std::env::args().skip(1) { for arg in env::args().skip(1) {
numbers.push(u64::from_str(&arg) numbers.push(u64::from_str(&arg)
.expect("error parsing argument")); .expect("error parsing argument"));
} }
if numbers.len() == 0 { if numbers.len() == 0 {
writeln!(std::io::stderr(), "Usage: gcd NUMBER ...").unwrap(); eprintln!("Usage: gcd NUMBER ...");
std::process::exit(1); std::process::exit(1);
} }

Loading…
Cancel
Save