| Crates.io | mio-timer |
| lib.rs | mio-timer |
| version | 0.2.0 |
| created_at | 2025-07-21 06:18:13.357421+00 |
| updated_at | 2025-07-24 08:57:23.749512+00 |
| description | A simple timer library for mio 1.0 |
| homepage | |
| repository | https://github.com/Pana/mio-timer |
| max_upload_size | |
| id | 1761783 |
| size | 43,535 |
A simple timer library for mio 1.0, which is originally part of the mio 0.6. From mio 0.7, the timer functionality has been removed from the mio crate.
This crate is the timer component from mio 0.6, adapted for mio 1.0. It provides the same basic functionality and usage patterns as the timer module in mio 0.6.
use log::*;
use mio::{Events, Interest, Poll, Token};
use mio_timer::{Builder, Timer};
use std::time::Duration;
const TIMER: Token = Token(1);
let mut poll = Poll::new()?;
let mut events = Events::with_capacity(128);
let mut timer: Timer<usize> = Builder::default().build();
poll.registry().register(&mut timer, TIMER, Interest::READABLE)?;
timer.set_timeout(Duration::new(1, 0), 1);
loop {
poll.poll(&mut events, Some(Duration::from_millis(100)))?;
for event in events.iter() {
match event.token() {
TIMER => {
let state = timer.poll();
match state {
Some(s) => {
info!("Got state from timer: {}", s);
}
None => {
info!("Not get state from timer");
}
}
}
_ => {
assert!(false, "Unexpected token: {:?}", event.token());
}
}
}
}
Check the examples directory for detail usage examples.