| Crates.io | tictoc |
| lib.rs | tictoc |
| version | 0.1.4 |
| created_at | 2022-03-11 02:40:15.527185+00 |
| updated_at | 2022-03-11 04:34:54.177436+00 |
| description | A time duration profiling library. |
| homepage | https://github.com/sombralibre/tictoc |
| repository | https://github.com/sombralibre/tictoc |
| max_upload_size | |
| id | 547968 |
| size | 17,947 |
A time duration profiling library.
The library comes with default and localtime feature.
Both features enables unstable-locales feature from chrono, however default feature uses Utc for time calculation,
meanwhile localtime feature uses current timezone.
Anytime while using localtime, you can get Utc result by switching
between time and local_time methods once toc method has been called.
...
[dependencies]
tictoc = "0.1"
...
...
...
[dependencies]
tictoc = { version = "0.1", features = ["localtime"] }
...
use tictoc::TicToc;
fn main(){
let mut tt: TicToc = TicToc::new();
// Error handling
let tic = match tt.tic(None) {
Ok(t) => t,
Err(e) => {
panic!("{e}");
std::process::exit(1);
}
};
// do somethig
std::thread::sleep(std::time::Duration::from_secs(3));
// unwrap the errors
let toc = tt.toc(None).unwrap();
println!("start_time: {tic}");
println!("end_time: {toc}");
// default output in milliseconds
println!("elapsed_time: {}", tt.time(None, None).unwrap() );
}
Named timers
use tictoc::TicToc;
fn main(){
let timer_name: Option<&str> = Some("mytimer");
let mut tt: TicToc = TicToc::new();
let tic = tt.tic(timer_name).unwrap();
// do somethig
std::thread::sleep(std::time::Duration::from_secs(3));
let toc = tt.toc(timer_name).unwrap();
println!("start_time: {tic}");
println!("end_time: {toc}");
// default output in milliseconds
println!("elapsed_time: {}", tt.time(timer_name, None).unwrap() );
}
Multiple timers
use tictoc::TicToc;
fn main(){
let timer_1: Option<&str> = Some("mytimer");
let timer_2: Option<&str> = Some("mytimer2");
let timer_3: Option<&str> = Some("mytimer3");
let mut tt: TicToc = TicToc::new();
let tic_1 = tt.tic(timer_1).unwrap();
std::thread::sleep(std::time::Duration::from_millis(100));
// do somethig
let tic_2 = tt.tic(timer_2).unwrap();
std::thread::sleep(std::time::Duration::from_millis(100));
// do somethig
let tic_3 = tt.tic(timer_3).unwrap();
std::thread::sleep(std::time::Duration::from_millis(100));
// do somethig
let toc_1 = tt.toc(timer_1).unwrap();
// do somethig
let toc_2 = tt.toc(timer_2).unwrap();
let toc_3 = tt.toc(timer_3).unwrap();
println!(
"elapsed_time {}: {}",
timer_1.unwrap(),
tt.time(timer_1, None).unwrap()
);
println!(
"elapsed_time {}: {}",
timer_2.unwrap(),
tt.time(timer_2, None).unwrap()
);
println!(
"elapsed_time {}: {}",
timer_3.unwrap(),
tt.time(timer_3, None).unwrap()
);
}
Use custom unit time.
use tictoc::{TicToc, TimeUnits};
fn main(){
let mut tt: TicToc = TicToc::new();
let _ = tt.tic(timer_name).unwrap();
// do somethig
std::thread::sleep(std::time::Duration::from_secs(3));
let _ = tt.toc(None).unwrap();
// result in Seconds
println!(
"elapsed_time: {}",
tt.time(None, Some(TimeUnits::Seconds)).unwrap()
);
}
Using local time with localtime feature enabled.
use tictoc::{TicToc, TimeUnits};
fn main(){
let mut tt: TicToc = TicToc::new();
let tic = tt.tic(timer_name).unwrap();
// do somethig
std::thread::sleep(std::time::Duration::from_secs(3));
let toc = tt.toc(None).unwrap();
println!("start_time: {tic}");
println!("end_time: {toc}");
println!(
"elapsed_time: {}",
tt.local_time(None, Some(TimeUnits::Minutes)).unwrap()
);
}