fun_time is a simple Rust library that allows you to easily time your function calls with a simple attribute!
```rust
fn somecoolfunction(avalue: String) -> usize { avalue.len() }
fn main() { let myvaluelength = somecoolfunction(String::from("Hello, world.")); } ```
There are various attributes that allow you to configure the behavior of the fun_time
attribute.
message
allows you to set a message that will be printed when starting, and when done.when
allows you to configure when the timing should be collected. The possible values for this are: "always"
which
as the name might suggest will always collect timing information, and "debug"
which will only collect when
cfg!(debug_assertions)
evaluates to true
.give_back
is a flag that makes it so the wrapped function will now return the elapsed time instead of printing it.
For this it modifies the return type from for example: -> &'a str
to -> (&'a str, std::time::Duration)
. This
allows you to handle printing or storing the timing information.reporting
(can not be used in combination with giveback_) determines how the reporting is done. The possible
options are: "println"
which will print to stdout using println!
. The "log"
option is only available when
the log
feature is used. This will use the log crate with info!
level logs.The reported messages are formatted as follows:
Start message: "Starting: YOURMESSAGEHERE"
Done message: "YOURMESSAGEHERE: Done in DURATION"