I googled for Rust glob match and ended up at the glob crate. This is my Rust program:
extern crate glob;
extern crate time;
use glob::glob;
use time::PreciseTime;
fn main() {
std::env::set_current_dir("/tmp/glob").expect("cd");
for i in 0..100 {
let pattern = "a*".repeat(i)+"b";
let t = PreciseTime::now();
let mul = 100;
for j in 0..mul {
for entry in glob(&pattern).expect("Failed to read glob pattern") {
match entry {
Ok(path) => println!("{:?}", path.display()),
Err(e) => println!("{:?}", e),
}
}
}
let t1 = PreciseTime::now();
println!("{:?} {:?}", i, (t.to(t1).num_nanoseconds().expect("ok") as f64)/1e9/(mul as f64))
}
}
Honestly I'm not too worried about Rust's performance here: it's on the right side of the fence.