Skip to main content

Automaton

Trait Automaton 

Source
pub trait Automaton:
    Send
    + Sync
    + Debug {
    type State: Clone + Send + Sync + 'static + Debug;
    type Action: Debug + Clone + Send + Sync + Default + 'static;

    // Required methods
    fn step(
        &self,
        time: Time,
        action: &Self::Action,
        state: &Self::State,
    ) -> (Self::State, Option<f64>);
    fn initial_state(&self) -> Self::State;
    fn name(&self) -> &str;
    fn extract_value(&self, state: &Self::State) -> f64;

    // Provided method
    fn reset(&self) -> Self::State { ... }
}
Expand description

Базовый трейт для всех автоматов

Автомат — это контейнер/исполнитель для чистой функции (Action), которая применяется к изменяемому состоянию (State) на каждом шаге. Автомат управляет диапазоном значений, интерполяцией и прочими аспектами выполнения, а Action — это чистое вычисление.

Required Associated Types§

Source

type State: Clone + Send + Sync + 'static + Debug

Тип состояния

Source

type Action: Debug + Clone + Send + Sync + Default + 'static

Тип действия (чистая функция, применяемая к состоянию)

Required Methods§

Source

fn step( &self, time: Time, action: &Self::Action, state: &Self::State, ) -> (Self::State, Option<f64>)

Выполнить один шаг автомата

§Arguments
  • time — текущее время
  • action — действие/функция, применяемая к состоянию
  • state — текущее состояние

Возвращает (новое_состояние, опциональное_значение)

Source

fn initial_state(&self) -> Self::State

Начальное состояние

Source

fn name(&self) -> &str

Имя автомата

Source

fn extract_value(&self, state: &Self::State) -> f64

Извлечь значение из состояния

Provided Methods§

Source

fn reset(&self) -> Self::State

Сбросить автомат (создать новое начальное состояние)

Implementors§