use crate::math::array::Array;
use crate::types::Time;
pub trait StepCondition {
fn apply_to(&self, a: &mut Array, t: Time);
}
#[derive(Clone, Copy, Debug, Default)]
pub struct NullCondition;
impl StepCondition for NullCondition {
fn apply_to(&self, _a: &mut Array, _t: Time) {}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn null_condition_leaves_the_array_unchanged() {
let mut values = Array::from([1.0, -2.5, 0.0, 7.25]);
let before = values.clone();
NullCondition.apply_to(&mut values, 0.75);
assert_eq!(values, before);
}
}