calyx_utils/
measure_time.rs

1pub 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}