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§
Required Methods§
Sourcefn step(
&self,
time: Time,
action: &Self::Action,
state: &Self::State,
) -> (Self::State, Option<f64>)
fn step( &self, time: Time, action: &Self::Action, state: &Self::State, ) -> (Self::State, Option<f64>)
Выполнить один шаг автомата
§Arguments
time— текущее времяaction— действие/функция, применяемая к состояниюstate— текущее состояние
Возвращает (новое_состояние, опциональное_значение)
Sourcefn initial_state(&self) -> Self::State
fn initial_state(&self) -> Self::State
Начальное состояние
Sourcefn extract_value(&self, state: &Self::State) -> f64
fn extract_value(&self, state: &Self::State) -> f64
Извлечь значение из состояния