rant_simulator/simulate/condition/
mod.rs1pub struct SimulationOptions {
2 pub max_iterations: usize,
3}
4
5pub fn simulate<State, Parameters>(
6 initial_state: State,
7 parameters: &Parameters,
8 function: impl Fn(State, &Parameters) -> State,
9 condition: impl Fn(&State) -> bool,
10 options: SimulationOptions,
11) -> Option<usize> {
12 let mut x = initial_state;
13
14 for i in 0..options.max_iterations {
15 x = function(x, parameters);
16
17 if condition(&x) {
18 return Some(i);
19 }
20 }
21
22 None
23}