pumpkin_core/engine/termination/
time_budget.rs1use super::TerminationCondition;
2use crate::basic_types::time::Duration;
3use crate::basic_types::time::Instant;
4
5#[derive(Clone, Copy, Debug)]
7pub struct TimeBudget {
8 started_at: Instant,
10 budget: Duration,
12}
13
14impl TimeBudget {
15 pub fn starting_now(budget: Duration) -> TimeBudget {
17 let started_at = Instant::now();
18
19 TimeBudget { started_at, budget }
20 }
21}
22
23impl TerminationCondition for TimeBudget {
24 fn should_stop(&mut self) -> bool {
25 self.started_at.elapsed() >= self.budget
26 }
27}