1use std::time::Instant;
2
3pub struct B2timer {
4 start: Instant,
5}
6
7impl Default for B2timer
8{
9 fn default() -> Self {
11 B2timer { start: Instant::now() }
12 }
13}
14
15impl B2timer {
18
19 pub fn reset(&mut self) {
21 self.start = Instant::now();
22 }
23
24 pub fn get_milliseconds(&self) -> f32 {
26 let elapsed = self.start.elapsed();
27 let nanos = elapsed.subsec_nanos() as u64;
28 let ms = 1000.0 * elapsed.as_secs() as f32 + nanos as f32/(1000.0 * 1000.0);
29 ms as f32
30 }
31 pub fn precise_time_ns(&self) -> u64 {
32 let elapsed = self.start.elapsed();
33 let nanos = elapsed.subsec_nanos() as u64;
34 let ns = 1000*1000*1000 * elapsed.as_secs() + nanos;
35 ns
36 }
37}