Skip to main content

qubit_clock/meter/
mod.rs

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