Skip to main content

OperationDispatch

Struct OperationDispatch 

Source
pub struct OperationDispatch;

Implementations§

Source§

impl OperationDispatch

Source§

impl OperationDispatch

Source

pub fn bind_batch_identity<R>( resolved: &dyn ExecutablePlanView, participant_identities: Vec<ExecutionIdentityEnvelope>, active_bindings: &[TrustedActiveSequenceBinding], invocation_resources: &InvocationResourceLease<R>, lane: &Arc<ExecutionLane<R>>, ) -> Result<BatchOperationIdentity, VNextError>
where R: DeviceRuntime,

Source

pub fn bind_submission_wave_identity<'binding, R, I>( resolved: &dyn ExecutablePlanView, active_bindings: I, wave: &PreparedStepSubmissionWave<R>, lane: &Arc<ExecutionLane<R>>, ) -> Result<BatchOperationIdentity, VNextError>

Binds one immutable-plan submission wave without accepting caller-made execution envelopes. Frame, node, provider, provisioning, span, and invocation identities are minted from core-owned plan/session evidence.

Source

pub fn reusable_execution_program_id_for_wave<R>( providers: &[BoundOperationProvider<'_, R>], resolved: &dyn ExecutablePlanView, wave: &PreparedStepSubmissionWave<R>, lane: &Arc<ExecutionLane<R>>, ) -> Result<Option<DeviceReusableExecutionProgramId>, VNextError>
where R: DeviceRuntime,

Derives the exact reusable-program identity for the current wave without materializing device buffers or entering dispatch.

Provider topology remains opaque. Core binds each topology row to its immutable node/provider position before aggregating it, so two providers cannot accidentally alias the same program variant. Eager boundaries remain part of the program identity while resident segments on either side stay eligible for typed reuse.

Source

pub fn encode_and_submit<R>( provider: &BoundOperationProvider<'_, R>, resolved: &dyn ExecutablePlanView, batch_identity: &BatchOperationIdentity, active_bindings: &[TrustedActiveSequenceBinding], invocation_resources: InvocationResourceLease<R>, lane: &Arc<ExecutionLane<R>>, reaper: &Arc<CompletionReaper<R>>, ) -> Result<CompletionHandle<R>, OperationDispatchError<R>>
where R: DeviceRuntime,

Source

pub fn encode_and_submit_wave<'binding, R, I>( providers: &[BoundOperationProvider<'_, R>], resolved: &dyn ExecutablePlanView, batch_identity: &BatchOperationIdentity, active_bindings: I, timing_mode: DeviceTimingMode, wave: PreparedStepSubmissionWave<R>, lane: &Arc<ExecutionLane<R>>, reaper: &Arc<CompletionReaper<R>>, ) -> Result<CompletionHandle<R>, SubmissionWaveDispatchError<R>>

Source

pub fn encode_and_submit_wave_with_inputs<'binding, R, I>( providers: &[BoundOperationProvider<'_, R>], resolved: &dyn ExecutablePlanView, batch_identity: &BatchOperationIdentity, active_bindings: I, timing_mode: DeviceTimingMode, input_uploads: &[SubmissionWaveInputUpload], wave: PreparedStepSubmissionWave<R>, lane: &Arc<ExecutionLane<R>>, reaper: &Arc<CompletionReaper<R>>, ) -> Result<CompletionHandle<R>, SubmissionWaveDispatchError<R>>

Source

pub fn encode_and_submit_wave_with_inputs_and_policy<'binding, R, I>( providers: &[BoundOperationProvider<'_, R>], resolved: &dyn ExecutablePlanView, batch_identity: &BatchOperationIdentity, active_bindings: I, timing_mode: DeviceTimingMode, input_uploads: &[SubmissionWaveInputUpload], execution_policy: SubmissionExecutionPolicy, wave: PreparedStepSubmissionWave<R>, lane: &Arc<ExecutionLane<R>>, reaper: &Arc<CompletionReaper<R>>, ) -> Result<CompletionHandle<R>, SubmissionWaveDispatchError<R>>

Source

pub fn encode_and_submit_wave_with_inputs_and_timing<'binding, R, I, S>( providers: &[BoundOperationProvider<'_, R>], resolved: &dyn ExecutablePlanView, batch_identity: &BatchOperationIdentity, active_bindings: I, timing_mode: DeviceTimingMode, input_uploads: &[SubmissionWaveInputUpload], execution_policy: SubmissionExecutionPolicy, timing_sink: &S, wave: PreparedStepSubmissionWave<R>, lane: &Arc<ExecutionLane<R>>, reaper: &Arc<CompletionReaper<R>>, ) -> Result<ProfiledSubmissionHandle<R>, SubmissionWaveDispatchError<R>>

Dispatches one prepared wave while attributing host time to exact typed ownership boundaries. The diagnostic sink receives no access to the command, submission, completion, or failure value.

Source

pub fn encode_and_submit_determinism_eager_wave<'binding, R, I>( providers: &[BoundOperationProvider<'_, R>], resolved: &dyn ExecutablePlanView, batch_identity: &BatchOperationIdentity, active_bindings: I, timing_mode: DeviceTimingMode, restore: &SubmissionWaveDeterminismRestore, scratch_fill: u8, wave: PreparedStepSubmissionWave<R>, lane: &Arc<ExecutionLane<R>>, reaper: &Arc<CompletionReaper<R>>, ) -> Result<SubmissionWaveDeterminismHandle<R>, SubmissionWaveDispatchError<R>>

Executes one complete plan-derived determinism restore through eager provider commands. The returned profiled handle retains physical path attribution for the hardware artifact.

Source

pub fn encode_and_submit_determinism_replayed_wave<'binding, R, I>( providers: &[BoundOperationProvider<'_, R>], resolved: &dyn ExecutablePlanView, batch_identity: &BatchOperationIdentity, active_bindings: I, timing_mode: DeviceTimingMode, restore: &SubmissionWaveDeterminismRestore, scratch_fill: u8, reusable_program: &DeviceReusableExecutionProgram, wave: PreparedStepSubmissionWave<R>, lane: &Arc<ExecutionLane<R>>, reaper: &Arc<CompletionReaper<R>>, ) -> Result<SubmissionWaveDeterminismHandle<R>, SubmissionWaveDispatchError<R>>

Executes the same complete restore through one sealed resident replay program. No adaptive capture or eager fallback is permitted.

Source

pub fn encode_and_submit_reusable_wave_with_inputs<'binding, R, I>( providers: &[BoundOperationProvider<'_, R>], resolved: &dyn ExecutablePlanView, batch_identity: &BatchOperationIdentity, active_bindings: I, timing_mode: DeviceTimingMode, input_uploads: &[SubmissionWaveInputUpload], reusable_program: &DeviceReusableExecutionProgram, wave: PreparedStepSubmissionWave<R>, lane: &Arc<ExecutionLane<R>>, reaper: &Arc<CompletionReaper<R>>, ) -> Result<CompletionHandle<R>, SubmissionWaveDispatchError<R>>

Source

pub fn encode_and_submit_reusable_wave_with_inputs_and_policy<'binding, R, I>( providers: &[BoundOperationProvider<'_, R>], resolved: &dyn ExecutablePlanView, batch_identity: &BatchOperationIdentity, active_bindings: I, timing_mode: DeviceTimingMode, input_uploads: &[SubmissionWaveInputUpload], reusable_program: &DeviceReusableExecutionProgram, execution_policy: SubmissionExecutionPolicy, wave: PreparedStepSubmissionWave<R>, lane: &Arc<ExecutionLane<R>>, reaper: &Arc<CompletionReaper<R>>, ) -> Result<CompletionHandle<R>, SubmissionWaveDispatchError<R>>

Source

pub fn encode_and_submit_reusable_wave_with_inputs_and_timing<'binding, R, I, S>( providers: &[BoundOperationProvider<'_, R>], resolved: &dyn ExecutablePlanView, batch_identity: &BatchOperationIdentity, active_bindings: I, timing_mode: DeviceTimingMode, input_uploads: &[SubmissionWaveInputUpload], reusable_program: &DeviceReusableExecutionProgram, execution_policy: SubmissionExecutionPolicy, timing_sink: &S, wave: PreparedStepSubmissionWave<R>, lane: &Arc<ExecutionLane<R>>, reaper: &Arc<CompletionReaper<R>>, ) -> Result<ProfiledSubmissionHandle<R>, SubmissionWaveDispatchError<R>>

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> 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, 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, <T as TryFrom<U>>::Error>

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.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V