mio_more/
lib.rs

1extern crate mio;
2extern crate lazycell;
3extern crate slab;
4
5#[macro_use]
6extern crate log;
7
8pub mod channel;
9pub mod timer;
10
11// Conversion utilities
12mod convert {
13    use std::time::Duration;
14
15    const NANOS_PER_MILLI: u32 = 1_000_000;
16    const MILLIS_PER_SEC: u64 = 1_000;
17
18    /// Convert a `Duration` to milliseconds, rounding up and saturating at
19    /// `u64::MAX`.
20    ///
21    /// The saturating is fine because `u64::MAX` milliseconds are still many
22    /// million years.
23    pub fn millis(duration: Duration) -> u64 {
24        // Round up.
25        let millis = (duration.subsec_nanos() + NANOS_PER_MILLI - 1) / NANOS_PER_MILLI;
26        duration.as_secs().saturating_mul(MILLIS_PER_SEC).saturating_add(millis as u64)
27    }
28}