Skip to main content

AwaitEventResolver

Trait AwaitEventResolver 

Source
pub trait AwaitEventResolver: Send + Sync {
    // Provided methods
    fn durability_tier(&self) -> DurabilityTier { ... }
    fn requires_durable_attachment_store(&self) -> bool { ... }
    fn supports_durable_effects(&self) -> bool { ... }
    fn await_event_key<'life0, 'life1, 'async_trait>(
        &'life0 self,
        _scope: &'life1 ExecutionScope,
        _wait: AwaitEventWaitIdentity,
    ) -> Pin<Box<dyn Future<Output = Result<AwaitEventKey, RuntimeError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait { ... }
    fn resolve_await_event<'life0, 'life1, 'async_trait>(
        &'life0 self,
        _key: &'life1 AwaitEventKey,
        _resolution: Resolution,
    ) -> Pin<Box<dyn Future<Output = Result<ResolveOutcome, RuntimeError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait { ... }
    fn await_await_event<'life0, 'life1, 'async_trait>(
        &'life0 self,
        _key: &'life1 AwaitEventKey,
        _cancel: CancellationToken,
        _deadline: Option<Instant>,
    ) -> Pin<Box<dyn Future<Output = Result<Resolution, RuntimeError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait { ... }
    fn revoke_await_events_for_session<'life0, 'life1, 'async_trait>(
        &'life0 self,
        _session_id: &'life1 str,
    ) -> Pin<Box<dyn Future<Output = Result<(), RuntimeError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait { ... }
    fn cancel_await_events_for_session<'life0, 'life1, 'async_trait>(
        &'life0 self,
        _session_id: &'life1 str,
    ) -> Pin<Box<dyn Future<Output = Result<(), RuntimeError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait { ... }
}
Expand description

Shared durability and Durable Wait contract for effect boundaries.

Both the deployment-level EffectHost factory and the per-run RuntimeEffectController resolve Durable Waits and describe their durability; this supertrait is the single declaration of that contract.

Provided Methods§

Source

fn durability_tier(&self) -> DurabilityTier

Source

fn requires_durable_attachment_store(&self) -> bool

Source

fn supports_durable_effects(&self) -> bool

Source

fn await_event_key<'life0, 'life1, 'async_trait>( &'life0 self, _scope: &'life1 ExecutionScope, _wait: AwaitEventWaitIdentity, ) -> Pin<Box<dyn Future<Output = Result<AwaitEventKey, RuntimeError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Source

fn resolve_await_event<'life0, 'life1, 'async_trait>( &'life0 self, _key: &'life1 AwaitEventKey, _resolution: Resolution, ) -> Pin<Box<dyn Future<Output = Result<ResolveOutcome, RuntimeError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Source

fn await_await_event<'life0, 'life1, 'async_trait>( &'life0 self, _key: &'life1 AwaitEventKey, _cancel: CancellationToken, _deadline: Option<Instant>, ) -> Pin<Box<dyn Future<Output = Result<Resolution, RuntimeError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Source

fn revoke_await_events_for_session<'life0, 'life1, 'async_trait>( &'life0 self, _session_id: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<(), RuntimeError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Source

fn cancel_await_events_for_session<'life0, 'life1, 'async_trait>( &'life0 self, _session_id: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<(), RuntimeError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Cancel every outstanding durable wait for session_id without deleting the session: each waiter receives a terminal Resolution::Cancelled instead of hanging, late resolves observe that terminal, and waits registered afterwards behave normally — in contrast to revoke_await_events_for_session, which tombstones the session’s waits forever.

The default errors loudly: an effect boundary that tracks durable waits must implement this to honor the host lever, and one that cannot must not silently claim success.

Dyn Compatibility§

This trait is dyn compatible.

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

Implementors§