pub trait State: Clone {
type PositionDerivative: StateDerivative;
type MomentumDerivative: StateDerivative;
// Required methods
fn shift_position_in_place(
&mut self,
dir: &Self::PositionDerivative,
amount: f64,
);
fn shift_momentum_in_place(
&mut self,
dir: &Self::MomentumDerivative,
amount: f64,
);
// Provided methods
fn shift_position(
&self,
dir: &Self::PositionDerivative,
amount: f64,
) -> Self { ... }
fn shift_momentum(
&self,
dir: &Self::MomentumDerivative,
amount: f64,
) -> Self { ... }
}
Required Associated Types§
Required Methods§
fn shift_position_in_place( &mut self, dir: &Self::PositionDerivative, amount: f64, )
fn shift_momentum_in_place( &mut self, dir: &Self::MomentumDerivative, amount: f64, )
Provided Methods§
fn shift_position(&self, dir: &Self::PositionDerivative, amount: f64) -> Self
fn shift_momentum(&self, dir: &Self::MomentumDerivative, amount: f64) -> Self
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.