pub struct EncodedDeviceOperation<C> { /* private fields */ }Expand description
Provider-encoded work for one logical operation.
Core owns the phase boundaries: request-specific inputs are written before compute, and request-specific outputs are materialized afterwards. A backend may optimize the compute command, but cannot accidentally capture either dynamic boundary into a reusable executable.
Implementations§
Source§impl<C> EncodedDeviceOperation<C>
impl<C> EncodedDeviceOperation<C>
pub fn compute(command: C) -> Self
Sourcepub fn with_program_binding(self, command: C) -> Self
pub fn with_program_binding(self, command: C) -> Self
Adds a binding that may execute in the wave-level program prelude.
Providers may use this only for writes into their own non-aliasing binding workspace. The command must not read provider outputs or depend on earlier compute in the same wave.
pub fn with_dynamic_binding(self, command: C) -> Self
pub fn with_result_binding(self, command: C) -> Self
pub fn dynamic_binding_count(&self) -> usize
pub fn program_binding_count(&self) -> usize
pub fn result_binding_count(&self) -> usize
Auto Trait Implementations§
impl<C> Freeze for EncodedDeviceOperation<C>
impl<C> RefUnwindSafe for EncodedDeviceOperation<C>
impl<C> Send for EncodedDeviceOperation<C>
impl<C> Sync for EncodedDeviceOperation<C>
impl<C> Unpin for EncodedDeviceOperation<C>
impl<C> UnsafeUnpin for EncodedDeviceOperation<C>
impl<C> UnwindSafe for EncodedDeviceOperation<C>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more