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§
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,
Sourcefn 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,
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".