use std::time::Instant;
use std::time::Duration;
pub struct Timer {
start: Instant,
unit: String,
}
impl Timer {
pub fn start(unit: &str) -> Self {
Self {
start: Instant::now(),
unit: unit.to_string(),
}
}
pub fn end(&mut self, print: bool) -> u128 {
let duration = self.start.elapsed();
let data = {
match self.unit.as_str() {
"ms" => {
let time = duration.as_millis();
time
}
"us" => {
let time = duration.as_micros();
time
}
_ => {
let time = duration.as_secs();
time as u128
}
}
};
if print {
println!("消耗时间: {} {}", data, self.unit);
}
return data;
}
pub fn sleep(ms: u64) {
let ten_millis = Duration::from_millis(ms);
std::thread::sleep(ten_millis);
}
}