Expand description
libsw_core is a comprehensive stopwatch implementation.
It offers checked stopping and arithmetic, precise control over when operations occur, and supports arbitrary timekeeping types.
If you want to do benchmarking, please use something like Criterion.
§Introduction
libsw_core provides the Stopwatch type.
This implementation is agnostic to the timekeeping type used, by
virtue of being generic. Any type I that implements the Instant
trait (as in Stopwatch<I>) can be used for timekeeping.
Instant is implemented for timekeeping types from the standard
library out of the box. These implementations are exposed as type
aliases.
§Features
| Name | Implies | Description |
|---|---|---|
default | Enabled by default. | |
std | Depends on the standard library. Implements Instant for std::time::{Instant, SystemTime}. Exposes Sw and SystemSw type aliases. | |
tokio | std | Implements Instant for tokio::time::Instant. Exposes TokioSw type alias. |
coarsetime | std | Implements Instant for coarsetime::Instant. Exposes CoarseSw type alias. |
quanta | std | Implements Instant for quanta::Instant. Exposes QuantaSw type alias. |
§no_std support
#![no_std] is set by default.
§Compiler support
Standalone, the minimum supported version of Rust is 1.61.0.
Adding dependencies may bump this.
§Safety
libsw_core contains no unsafe code (#![forbid(unsafe_code)]).
Structs§
- A stopwatch measures and accumulates elapsed time between starts and stops.
Traits§
- A trait outlining the behavior of a timekeeping type.