#定时器 #更简单 #持续时间 #有限 #简单直接 #回调 #上下文

更简单_定时器

一个功能简单、但有限的定时器库

3 个不稳定版本

0.2.0 2020年7月14日
0.1.1 2020年7月14日
0.1.0 2020年7月13日

20#更简单 中排名

Download history 343/week @ 2024-03-14 244/week @ 2024-03-21 247/week @ 2024-03-28 187/week @ 2024-04-04 313/week @ 2024-04-11 162/week @ 2024-04-18 266/week @ 2024-04-25 147/week @ 2024-05-02 160/week @ 2024-05-09 320/week @ 2024-05-16 268/week @ 2024-05-23 302/week @ 2024-05-30 237/week @ 2024-06-06 198/week @ 2024-06-13 242/week @ 2024-06-20 180/week @ 2024-06-27

每月935 次下载
oryx 中使用

MIT/Apache 协议

6KB
60

更简单定时器

Crates.io Docs.rs

该库提供了一种非常简单的基于轮询的定时器。

要使用它,请在 Cargo.toml 中包含以下内容

[dependencies]
simpler_timer = "0.2.0"
use simpler_timer::Timer;
use std::time::Duration;

fn main() {
    let periodic = Timer::with_duration(Duration::from_millis(100));
    let timeout = Timer::with_duration(Duration::from_secs(2));
    

    loop {
        if periodic.expired() {
            println!("tick");
            periodic.reset();
        }

        if timeout.expired() {
            break;
        }
    }

    println!("total elapsed time: {}ms", timeout.elapsed().as_millis());
}

lib.rs:

simpler_timer

这是一个简单的定时器机制,用于跟踪任意超时。它不做任何复杂的事情,例如没有在超时时的回调,只需给它一个持续时间并轮询定时器是否已过期。定时器可以被重置并重复使用,例如在简单的基于时间的控制循环等周期性上下文中。

示例

use std::time::Duration;

// 100ms timer
let tick = Timer::with_duration(Duration::from_millis(100));
// 1 sec timer
let end = Timer::with_duration(Duration::from_secs(1));

loop {
    if tick.expired() {
        // do something interesting
        println!("tick");
        tick.reset();
    }

    if end.expired() { 
        // don't reset, let's get out of here
        break; 
    }
}

println!("total time: {}ms", end.elapsed().as_millis());

无运行时依赖项