Duration

    Struct std::time::Duration は、期間を扱う型です。Function std::thread::sleep など時間を扱う関数などがこの型を期待します。

    ::newでは秒とミリ秒を同時に設定できます。以下ではthread::sleep(Duration::new(1, 10))で1010ミリ秒を取得してます。

    use std::thread;
    use std::time::Duration;
    
    let handler = thread::spawn(|| {
      thread::sleep(Duration::new(1, 10));
      println!("called");
    });
    
    handler.join().unwrap();
    

    上記は以下のように書き換えることもできます。

    • ::from_secsで秒
    • ::from_millisでミリ秒

    をそれぞれ取得してます。また、DurationAddSubなどのトレイトを実装している為+-などで計算することができます。

    use std::thread;
    use std::time::Duration;
    
    let handler = thread::spawn(|| {
      thread::sleep(Duration::from_secs(1) + Duration::from_millis(10));
      println!("called");
    });
    
    handler.join().unwrap();