calyx_utils/
measure_time.rs1pub struct Measurement<'a> {
2 name: &'a str,
3 duration: std::time::Duration,
4 start: std::time::Instant,
5}
6
7#[allow(unused)]
8impl<'a> Measurement<'a> {
9 pub fn new(name: &'a str) -> Self {
10 Measurement {
11 name,
12 duration: std::time::Duration::new(0, 0),
13 start: std::time::Instant::now(),
14 }
15 }
16
17 pub fn start(&mut self) {
18 self.start = std::time::Instant::now()
19 }
20
21 pub fn commit(&mut self) {
22 self.duration += std::time::Instant::now() - self.start;
23 }
24
25 pub fn finalize(self, nest: usize) {
26 eprintln!(
27 "{}{} took {:?}",
28 " ".repeat(nest * 2),
29 self.name,
30 self.duration
31 );
32 }
33}