1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
//! CPU Time Measurement Library
//! ============================
//!
//! [Documentation](https://docs.rs/cpu-time) |
//! [Github](https://github.com/tailhook/cpu-time) |
//! [Crate](https://crates.io/crates/cpu-time)
//!
//! # Example
//!
//! ```rust
//!
//! use std::time::Duration;
//! use cpu_time::ProcessTime;
//!
//! // Manually handle errors
//! let start = ProcessTime::try_now().expect("Getting process time failed");
//! // .. do something ..
//! let cpu_time: Duration = start.try_elapsed().expect("Getting process time failed");;
//! println!(" {:?}", cpu_time);
//!
//! // Panic in case of an error
//! let start = ProcessTime::now();
//! // .. do something ..
//! let cpu_time: Duration = start.elapsed();
//! println!(" {:?}", cpu_time);
//! ```

#![warn(missing_debug_implementations)]
#![warn(missing_docs)]

#[cfg(unix)] extern crate libc;
#[cfg(windows)] extern crate winapi;

// It looks like all modern unixes support clock_gettime(..CPUTIME..)
#[cfg(unix)] mod clock_gettime;
#[cfg(windows)] mod windows;

#[cfg(unix)] pub use clock_gettime::{ProcessTime, ThreadTime};

#[cfg(windows)] pub use windows::{ProcessTime, ThreadTime};