pub struct RuntimeResourceDriver<R>where
R: DeviceRuntime,{ /* private fields */ }Expand description
Production transaction adapter for a concrete DeviceRuntime.
Core owns reservation ordering, allocation authority, buffers, and capacity claims. This adapter therefore has no parallel allocator ledger: reserve, rollback, and release are acknowledgements, while commit consumes the exact core-issued allocation permit.
Implementations§
Source§impl<R> RuntimeResourceDriver<R>where
R: DeviceRuntime,
impl<R> RuntimeResourceDriver<R>where
R: DeviceRuntime,
Trait Implementations§
Source§impl<R> ResourceTransactionDriver for RuntimeResourceDriver<R>where
R: DeviceRuntime,
impl<R> ResourceTransactionDriver for RuntimeResourceDriver<R>where
R: DeviceRuntime,
type Buffer = <R as DeviceRuntime>::Buffer
type Runtime = R
fn runtime(&self) -> &Arc<Self::Runtime> ⓘ
fn device_id(&self) -> &DeviceId
fn device_runtime_implementation_fingerprint(&self) -> &str
fn device_capacity_bytes(&self) -> u64
fn reserve_resource( &mut self, _context: &ResourceTransactionContext<'_, Self::Runtime>, _reservation: &ResourceReservation, ) -> Result<(), ResourceDriverFailure>
fn commit_resource<'commit>( &mut self, context: &'commit ResourceTransactionContext<'_, Self::Runtime>, reservation: &ResourceReservation, ) -> Result<DeviceAllocationReceipt<'commit>, ResourceDriverFailure>
fn compensate_reserve_resource( &mut self, _context: &ResourceTransactionContext<'_, Self::Runtime>, _reservation: &ResourceReservation, ) -> Result<(), ResourceDriverFailure>
fn compensate_commit_resource( &mut self, _context: &ResourceTransactionContext<'_, Self::Runtime>, _reservation: &ResourceReservation, _buffer: &Self::Buffer, ) -> Result<(), ResourceDriverFailure>
fn rollback_resource( &mut self, _context: &ResourceTransactionContext<'_, Self::Runtime>, _reservation: &ResourceReservation, ) -> Result<(), ResourceDriverFailure>
fn release_resource( &mut self, _context: &ResourceTransactionContext<'_, Self::Runtime>, _reservation: &ResourceReservation, _buffer: &Self::Buffer, ) -> Result<(), ResourceDriverFailure>
fn reconcile_commit_outcome( &mut self, _context: &ResourceTransactionContext<'_, Self::Runtime>, _expected: &ResourceReservation, _actual: ResourceCommitView<'_, Self::Buffer>, ) -> Result<(), ResourceDriverFailure>
fn quarantine_transaction( &mut self, _context: &ResourceTransactionContext<'_, Self::Runtime>, ownership: ResourcePoolOwnership<Self::Runtime>, ) -> Result<(), ResourceOwnershipTransferFailure<Self::Runtime>>
fn abandon_transaction( &mut self, ownership: ResourcePoolOwnership<Self::Runtime>, )
Auto Trait Implementations§
impl<R> !RefUnwindSafe for RuntimeResourceDriver<R>
impl<R> !UnwindSafe for RuntimeResourceDriver<R>
impl<R> Freeze for RuntimeResourceDriver<R>
impl<R> Send for RuntimeResourceDriver<R>
impl<R> Sync for RuntimeResourceDriver<R>
impl<R> Unpin for RuntimeResourceDriver<R>
impl<R> UnsafeUnpin for RuntimeResourceDriver<R>
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