Skip to main content

qubit_clock/meter/
mod.rs

1/*******************************************************************************
2 *
3 *    Copyright (c) 2025 - 2026.
4 *    Haixing Hu, Qubit Co. Ltd.
5 *
6 *    All rights reserved.
7 *
8 ******************************************************************************/
9//! Time measurement utilities.
10//!
11//! This module provides time meters for measuring elapsed time with
12//! different precision levels:
13//!
14//! - [`TimeMeter`]: Millisecond precision time meter for general use cases
15//! - [`NanoTimeMeter`]: Nanosecond precision time meter for
16//!   high-precision measurements
17//!
18//! # Examples
19//!
20//! ## Basic Usage with TimeMeter
21//!
22//! ```
23//! use qubit_clock::meter::TimeMeter;
24//! use std::thread;
25//! use std::time::Duration;
26//!
27//! let mut meter = TimeMeter::new();
28//! meter.start();
29//! thread::sleep(Duration::from_millis(100));
30//! meter.stop();
31//! println!("Elapsed: {}", meter.readable_duration());
32//! ```
33//!
34//! ## High-Precision Measurement with NanoTimeMeter
35//!
36//! ```
37//! use qubit_clock::meter::NanoTimeMeter;
38//!
39//! let mut meter = NanoTimeMeter::new();
40//! meter.start();
41//! // Perform some operation
42//! meter.stop();
43//! println!("Elapsed: {} ns", meter.nanos());
44//! ```
45//!
46//! # Author
47//!
48//! Haixing Hu
49
50mod format;
51mod nano_time_meter;
52mod time_meter;
53
54pub use format::{format_duration_millis, format_duration_nanos, format_speed};
55pub use nano_time_meter::NanoTimeMeter;
56pub use time_meter::TimeMeter;