Skip to main content

RuntimeExecutionServices

Trait RuntimeExecutionServices 

Source
pub trait RuntimeExecutionServices {
    // Required methods
    fn scope_id(&self) -> ExecutionScopeId;
    fn create_future(
        &self,
        call: DeferredCall,
    ) -> Result<FutureHandle, ExecutionServiceError>;
    fn spawn(
        &self,
        future: &FutureHandle,
    ) -> Result<TaskHandle, ExecutionServiceError>;
    fn begin_await(
        &self,
        value: Value,
    ) -> Result<AwaitAction, ExecutionServiceError>;
    fn complete_future(
        &self,
        future: &FutureHandle,
        result: Result<Value, ExecutionServiceError>,
    ) -> Result<(), ExecutionServiceError>;
    fn cancel(
        &self,
        value: &Value,
        reason: CancellationReason,
    ) -> Result<(), ExecutionServiceError>;
    fn drain_scope(&self, reason: CancellationReason);

    // Provided methods
    fn requires_program_capture(&self) -> bool { ... }
    fn submit_job(
        &self,
        _call: DeferredCall,
        _options: DurableJobOptions,
    ) -> Result<JobHandle, ExecutionServiceError> { ... }
    fn await_job(
        &self,
        _job: &JobHandle,
    ) -> Result<Value, ExecutionServiceError> { ... }
}

Required Methods§

Provided Methods§

Dyn Compatibility§

This trait is dyn compatible.

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

Implementors§