Expand description
libsw
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
provides the StopwatchImpl
type as a stopwatch.
This implementation is agnostic to the timekeeping type used, by virtue of
being generic. Any type I
that implements the Instant
trait (as in
StopwatchImpl<I>
) can be used for timekeeping.
Instant
is implemented for several timekeeping types out of the box (see
timekeeping support). If present, these
implementations are exposed as type aliases.
§Features
Name | Features enabled | Description |
---|---|---|
default | std_instant , std_systemtime | Enabled by default. |
std | Depends on the standard library. Implements std::error::Error for Error . | |
nightly | Implements core::error::Error for Error if std is not enabled. Requires a nightly compiler. | |
std_instant | std | Implements Instant for std::time::Instant . Exposes Sw type alias. |
std_systemtime | std | Implements Instant for std::time::SystemTime . Exposes SystemSw type alias. |
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. |
time | std | Deprecated. Implements Instant for time::Instant . Exposes TimeSw type alias. |
§Timekeeping support
libsw
can be used with any timekeeping type that implements Instant
,
as long as the appropriate feature flag is enabled.
See Instant
’s documentation for a list
of types supported out of the box.
§no_std
support
The std
feature flag unsets #[no_std]
. It is enabled by default, but you
can disable it by disabling the default features.
In Cargo.toml
,
[dependencies]
# replace '...' with the appropriate version
libsw = { version = ..., default-features = false }
§Compiler support
Standalone, the minimum supported version of Rust is 1.61.0
.
Adding dependencies may bump this.
§Safety
libsw
contains no unsafe code (#![forbid(unsafe_code)]
).
Structs§
- Guard
- A running, guarded, stopwatch. When dropped, the stopwatch will automatically stop.
- Stopwatch
Impl - A stopwatch measures and accumulates elapsed time between starts and stops.
Enums§
- Error
- Enumeration over possible errors.
Traits§
- Instant
- A trait outlining the behavior of a timekeeping type.
Type Aliases§
- Coarse
Sw coarsetime
- Alias to
StopwatchImpl
using thecoarsetime
crate’sInstant
type. - Quanta
Sw quanta
- Alias to
StopwatchImpl
using thequanta
crate’sInstant
type. - Result
- Alias to
Result<T, Error>
. - Stopwatch
Deprecated std_instant
- Deprecated alias to the “default” stopwatch.
- Sw
std_instant
- Alias to
StopwatchImpl
using the standard library’sInstant
type. - System
Sw std_systemtime
- Alias to
StopwatchImpl
using the standard library’sSystemTime
type. - TimeSw
Deprecated time
- Alias to
StopwatchImpl
using thetime
crate’sInstant
type. - TokioSw
tokio
- Alias to
StopwatchImpl
using Tokio’sInstant
type.