1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
#[cfg(feature = "tuple")] mod tuple_impls; #[cfg(feature = "tuple")] pub use self::tuple_impls::*; pub trait Ode { type State: Clone; fn differentiate_into(&mut self, &Self::State, &mut Self::State); fn differentiate(&mut self, state: &Self::State) -> Self::State { let mut derivative = state.clone(); self.differentiate_into(state, &mut derivative); derivative } fn update_state(&self, state: &mut Self::State, value: &Self::State) { state.clone_from(value); } }