Skip to main content

ProcessManager

Trait ProcessManager 

Source
pub trait ProcessManager {
    type State;
    type Event;
    type Effect;
    type Error;

    // Required method
    fn handle(
        &self,
        state: &Self::State,
        event: &Self::Event,
    ) -> Result<Transition<Self::State, Self::Effect>, Self::Error>;
}
Expand description

English:
Computes a next state and effect descriptions from borrowed state and event values. The caller owns persistence, event delivery, and effect execution. The signature does not enforce determinism, reentrancy, idempotency, or purity; shared access can still use interior mutability. Thread-safety bounds and panic behavior are left to implementations.

日本語:
借用した状態とイベントから、次状態と副作用の記述を算出します。 永続化、イベント配信、副作用の実行は呼び出し側が担います。このシグネチャは決定性、再入可能性、 冪等性、純粋性を強制せず、共有参照でも内部可変性を使えます。 スレッド安全性の境界とパニックの条件は実装が定めます。

Required Associated Types§

Source

type State

English:
Process state borrowed as input and owned by the resulting transition.

日本語:
入力として借用し、結果の遷移が所有するプロセス状態です。

Source

type Event

English:
Event type interpreted by this manager; no event trait bound is required.

日本語:
このマネージャーが解釈するイベント型です。イベントトレイトの境界は要求しません。

Source

type Effect

English:
Description of an action for the caller to execute after handling.

日本語:
処理後に呼び出し側が実行する動作の記述です。

Source

type Error

English:
Handling failure returned instead of a transition.

日本語:
遷移の代わりに返す処理の失敗です。

Required Methods§

Source

fn handle( &self, state: &Self::State, event: &Self::Event, ) -> Result<Transition<Self::State, Self::Effect>, Self::Error>

English:
Evaluates event against state, returning a transition or a handling error. Neither input is consumed. On error no transition is returned, but the trait does not undo implementation side effects or guarantee that no side effects occurred.

日本語:
state に対して event を評価し、遷移または処理エラーを返します。 どちらの入力も消費しません。エラー時は遷移を返しませんが、実装の副作用を取り消したり、 副作用が発生していないと保証したりはしません。

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§