Skip to main content

RuntimeController

Struct RuntimeController 

Source
pub struct RuntimeController { /* private fields */ }
Expand description

Coordinates lifecycle, idempotency, command dispatch, events and audit.

Implementations§

Source§

impl RuntimeController

Source

pub fn new(instance: RuntimeInstance) -> Self

Creates a controller with process-local idempotency.

Source

pub fn with_idempotency_store( instance: RuntimeInstance, idempotency: Box<dyn IdempotencyStore + Send + Sync>, ) -> Self

Creates a controller with an explicit idempotency store.

Source

pub fn instance(&self) -> &RuntimeInstance

Returns the hosted immutable Runtime instance.

Source

pub fn instance_arc(&self) -> Arc<RuntimeInstance>

Returns a shared reference-counted Runtime instance.

Source

pub fn lifecycle(&self) -> &RuntimeLifecycle

Returns the process lifecycle.

Source

pub fn idempotency_len(&self) -> usize

Returns the number of active idempotency records.

Source

pub fn idempotency_contains(&self, key: &str) -> RuntimeResult<bool>

Reports whether an idempotency key has an active record.

Source

pub fn apply_lifecycle_event( &self, event: RuntimeLifecycleEvent, ) -> RuntimeResult<RuntimeLifecycleState>

Applies one process lifecycle event.

Source

pub fn dispatch_command( &self, command: &CommandEnvelope, context: &dyn RuntimeContext, ) -> RuntimeResult<CommandResult>

Runs the complete command dispatch transaction.

Source

pub fn inflight_commands(&self) -> usize

Returns the number of commands currently executing or finalizing.

Source

pub fn wait_for_inflight(&self, timeout: Duration) -> bool

Waits up to timeout for every admitted command to finish.

Callers must request the shutdown lifecycle transition first so new commands cannot enter while the drain is in progress.

Source

pub fn pre_dispatch( &self, command: &CommandEnvelope, ) -> RuntimeResult<Option<RuntimeResult<CommandResult>>>

Performs lifecycle and idempotency checks before handler execution.

Source

pub fn post_dispatch( &self, command: &CommandEnvelope, dispatch_result: &RuntimeResult<CommandResult>, ) -> RuntimeResult<()>

Persists command outcome and emits accepted events after handler execution.

Trait Implementations§

Source§

impl Clone for RuntimeController

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.