Trait State

Source
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§

Source

fn shift_position_in_place( &mut self, dir: &Self::PositionDerivative, amount: f64, )

Source

fn shift_momentum_in_place( &mut self, dir: &Self::MomentumDerivative, amount: f64, )

Provided Methods§

Source

fn shift_position(&self, dir: &Self::PositionDerivative, amount: f64) -> Self

Source

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.

Implementors§