# rust-simple-stopwatch
[](https://travis-ci.org/huwb/rust-simple-stopwatch)
## What is it?
A minimal no-thrills stopwatch. Returns time values as floats. Uses `time::precise_time_ns` under the hood.
## Setup
Add the dependency `simple-stopwatch` to your `Cargo.toml` file, for example:
```toml
[dependencies]
simple-stopwatch="0.1.4"
```
Then import the stopwatch anywhere you would like to use it:
```rust
extern crate simple_stopwatch;
use simple_stopwatch::Stopwatch;
```
## Example Use
There is minimal state in `simple-stopwatch`. Upon creation it grabs a timestamp, from which point its member functions will return elapsed time.
```rust
fn my_function() {
let sw = Stopwatch::start_new();
do_some_heavy_work();
let elapsed_ms = sw.ms();
println!("Time taken: {}ms", elapsed_ms);
}
```
The `restart` method updates the stored timestamp to the current time.
The code make use of a small amount of code from the `time` crate, which uses a system call to obtain a high precision time stamp. The overhead of this call appears to be very small from my experiments so far.
## Inspiration / Other Projects
* [stopwatch](https://crates.io/crates/stopwatch) by Chucky Ellison