pub trait ExecutionSessionFactory: Send + Sync {
// Required methods
fn establish_delegation<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
operation: &'life1 OperationContext,
authority: &'life2 RequestAuthority,
scope: &'life3 SessionScope,
) -> Pin<Box<dyn Future<Output = Result<ExecutionDelegationLease, PortFailure>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait;
fn create<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
operation: &'life1 OperationContext,
caller: &'life2 CallerScope,
delegation: &'life3 ExecutionDelegationLease,
scope: &'life4 SessionScope,
) -> Pin<Box<dyn Future<Output = Result<ExecutionSessions, PortFailure>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait;
fn renew_delegation<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
operation: &'life1 OperationContext,
caller: &'life2 CallerScope,
delegation: &'life3 ExecutionDelegationLease,
) -> Pin<Box<dyn Future<Output = Result<ExecutionDelegationLease, PortFailure>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait;
fn revoke_delegation<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
operation: &'life1 OperationContext,
caller: &'life2 CallerScope,
delegation: &'life3 ExecutionDelegationLease,
) -> Pin<Box<dyn Future<Output = Result<(), PortFailure>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait;
fn submit_input<'life0, 'life1, 'life2, 'life3, 'life4, 'life5, 'async_trait>(
&'life0 self,
operation: &'life1 OperationContext,
caller: &'life2 CallerScope,
execution_id: &'life3 ExecutionId,
operation_id: &'life4 OperationId,
request_id: &'life5 str,
response: InteractionResponse,
) -> Pin<Box<dyn Future<Output = Result<(), PortFailure>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
'life5: 'async_trait;
}Required Methods§
fn establish_delegation<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
operation: &'life1 OperationContext,
authority: &'life2 RequestAuthority,
scope: &'life3 SessionScope,
) -> Pin<Box<dyn Future<Output = Result<ExecutionDelegationLease, PortFailure>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn create<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
operation: &'life1 OperationContext,
caller: &'life2 CallerScope,
delegation: &'life3 ExecutionDelegationLease,
scope: &'life4 SessionScope,
) -> Pin<Box<dyn Future<Output = Result<ExecutionSessions, PortFailure>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
fn renew_delegation<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
operation: &'life1 OperationContext,
caller: &'life2 CallerScope,
delegation: &'life3 ExecutionDelegationLease,
) -> Pin<Box<dyn Future<Output = Result<ExecutionDelegationLease, PortFailure>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn revoke_delegation<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
operation: &'life1 OperationContext,
caller: &'life2 CallerScope,
delegation: &'life3 ExecutionDelegationLease,
) -> Pin<Box<dyn Future<Output = Result<(), PortFailure>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Sourcefn submit_input<'life0, 'life1, 'life2, 'life3, 'life4, 'life5, 'async_trait>(
&'life0 self,
operation: &'life1 OperationContext,
caller: &'life2 CallerScope,
execution_id: &'life3 ExecutionId,
operation_id: &'life4 OperationId,
request_id: &'life5 str,
response: InteractionResponse,
) -> Pin<Box<dyn Future<Output = Result<(), PortFailure>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
'life5: 'async_trait,
fn submit_input<'life0, 'life1, 'life2, 'life3, 'life4, 'life5, 'async_trait>(
&'life0 self,
operation: &'life1 OperationContext,
caller: &'life2 CallerScope,
execution_id: &'life3 ExecutionId,
operation_id: &'life4 OperationId,
request_id: &'life5 str,
response: InteractionResponse,
) -> Pin<Box<dyn Future<Output = Result<(), PortFailure>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
'life5: 'async_trait,
Deliver input to a currently waiting execution. Implementations must
deduplicate operation_id and reject input when no request is pending.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".