やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

Rust自習(std::time::Instant)

 標準モジュールで時間を求める。タイマー的なもの?

成果物

Instant生成: now()

fn main() {
    let ins = std::time::Instant::now();
    println!("{:?}", ins);
}
$ cargo run
...
Instant { tv_sec: 10728, tv_nsec: 268399053 }
1

 OSが起動してからの秒数だろうか?

Instantが生成されてからの経過時間を得る: elapsed()

fn main() {
    let ins = std::time::Instant::now();
    println!("{:?}", ins);
    std::thread::sleep(std::time::Duration::from_secs(1));
    println!("{:?}", ins.elapsed().as_secs());
}
$ cargo run
...
Instant { tv_sec: 10728, tv_nsec: 268399053 }
1

時差を求める

fn main() {
    let ins = std::time::Instant::now();
    let new = std::time::Instant::now();
    println!("{:?}", new.duration_since(ins));
    println!("{:?}", new - ins);
//    println!("{:?}", new + ins); // error[E0308]: mismatched types
}
$ cargo run
...
1.000185675s
1.000185675s

対象環境

$ uname -a
Linux raspberrypi 4.19.42-v7+ #1219 SMP Tue May 14 21:20:58 BST 2019 armv7l GNU/Linux

前回まで