took
: easily measure & report elapsed timeI always find measuring and reporting run time of code it in a human readable format troublesome.
This crate provides a few simple interfaces to do just that.
Measure & report manually using Timer stopwatch:
```rust use took::Timer;
let timer = Timer::new(); // Run heavy task println!("Done! Took {}", timer.took());
// Prints: // Done! Took 1.00 s ```
Measure a function, report manually:
```rust use took::took;
let (took, result) = took(|| { // Run heavy task }); println!("Done, took {}", took);
// Prints: // Done! Took 1.00 s ```
Measure & report a function automatically using attribute:
```rust
extern crate took_macro;
myfunction(); otherfunction();
pub fn my_function() { // Run heavy task }
pub fn other_function() { // Run heavy task }
// Prints: // my_function() took 1.00 s // Render finished, took 1.00 s ```
std
)Add the dependencies in your Cargo.toml
. The took-macro
dependency is only
required if you'll be using the #[took]
attribute macro.
Cargo.toml
[dependencies]
took = "0.1"
took-macro = "0.1" # if using macros
Import and start using:
```rust use took::{Timer, took};
let timer = Timer::new(); println!("Done! Took {}", timer.took());
let (took, result) = took(|| { // Run heavy task }); println!("Done, took {}", took); ```
If you'll be using #[took]
attribute macro, explicitly import it:
```rust
extern crate took_macro;
pub fn function_a() {}
pub fn function_a() {} ```
#[took]
attribute for almost anything
(function call, blocks, if-statements, ...)stderr
This project is released under the MIT license. Check out the LICENSE file for more information.