rant_simulator/simulate/condition/
mod.rs

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