pub struct PermitAttempt<'permit, 'request, 'fingerprint> { /* private fields */ }Expand description
One in-flight attempt. Dropping it records uncertain delivery.
The prepared request cannot be extracted from this capability.
ⓘ
use cloud_sdk::operation::PermitAttempt;
fn extract(attempt: &PermitAttempt<'_, '_, '_>) {
let _ = attempt.prepared();
}Implementations§
Source§impl<'permit, 'request, 'fingerprint> PermitAttempt<'permit, 'request, 'fingerprint>
impl<'permit, 'request, 'fingerprint> PermitAttempt<'permit, 'request, 'fingerprint>
Sourcepub fn complete(self, phase: DeliveryPhase) -> PermitDisposition
pub fn complete(self, phase: DeliveryPhase) -> PermitDisposition
Completes a manually driven attempt with conservative delivery state.
NotSent is sound only when a delivery-aware transport boundary proves
that no request bytes reached the peer. Unknown state must be reported
as PossiblySent; ordinary callers should prefer the execute methods.
Sourcepub fn complete_applied(self) -> PermitDisposition
pub fn complete_applied(self) -> PermitDisposition
Marks a successful checked provider response and spends authority.
Sourcepub fn execute_blocking<'buffer, T, C>(
self,
clock: &C,
transport: &T,
response_storage: &'buffer mut [u8],
response_header_storage: &'buffer mut [u8],
) -> Result<CheckedResponseGuard<'buffer>, PermitExecutionError<T::Error>>where
T: BlockingAuthenticatedTransport + BoundTransport,
T::Error: DeliveryClassified,
C: PermitClock + ?Sized,
pub fn execute_blocking<'buffer, T, C>(
self,
clock: &C,
transport: &T,
response_storage: &'buffer mut [u8],
response_header_storage: &'buffer mut [u8],
) -> Result<CheckedResponseGuard<'buffer>, PermitExecutionError<T::Error>>where
T: BlockingAuthenticatedTransport + BoundTransport,
T::Error: DeliveryClassified,
C: PermitClock + ?Sized,
Executes once through a delivery-classified blocking transport.
Sourcepub async fn execute_async<'transport, 'buffer, T, C>(
self,
clock: &'transport C,
transport: &'transport T,
response_storage: &'buffer mut [u8],
response_header_storage: &'buffer mut [u8],
) -> Result<CheckedResponseGuard<'buffer>, PermitExecutionError<T::Error>>where
T: AsyncAuthenticatedTransport + BoundTransport,
T::Error: DeliveryClassified,
C: PermitClock + Sync + ?Sized,
'request: 'transport,
'permit: 'transport,
pub async fn execute_async<'transport, 'buffer, T, C>(
self,
clock: &'transport C,
transport: &'transport T,
response_storage: &'buffer mut [u8],
response_header_storage: &'buffer mut [u8],
) -> Result<CheckedResponseGuard<'buffer>, PermitExecutionError<T::Error>>where
T: AsyncAuthenticatedTransport + BoundTransport,
T::Error: DeliveryClassified,
C: PermitClock + Sync + ?Sized,
'request: 'transport,
'permit: 'transport,
Executes once through a delivery-classified Send-async transport.
Sourcepub async fn execute_local_async<'transport, 'buffer, T, C>(
self,
clock: &'transport C,
transport: &'transport T,
response_storage: &'buffer mut [u8],
response_header_storage: &'buffer mut [u8],
) -> Result<CheckedResponseGuard<'buffer>, PermitExecutionError<T::Error>>where
T: LocalAsyncAuthenticatedTransport + BoundTransport,
T::Error: DeliveryClassified,
C: PermitClock + ?Sized,
'request: 'transport,
'permit: 'transport,
pub async fn execute_local_async<'transport, 'buffer, T, C>(
self,
clock: &'transport C,
transport: &'transport T,
response_storage: &'buffer mut [u8],
response_header_storage: &'buffer mut [u8],
) -> Result<CheckedResponseGuard<'buffer>, PermitExecutionError<T::Error>>where
T: LocalAsyncAuthenticatedTransport + BoundTransport,
T::Error: DeliveryClassified,
C: PermitClock + ?Sized,
'request: 'transport,
'permit: 'transport,
Executes once through a delivery-classified local-async transport.
Trait Implementations§
Source§impl Debug for PermitAttempt<'_, '_, '_>
impl Debug for PermitAttempt<'_, '_, '_>
Source§impl Drop for PermitAttempt<'_, '_, '_>
impl Drop for PermitAttempt<'_, '_, '_>
Auto Trait Implementations§
impl<'permit, 'request, 'fingerprint> !UnwindSafe for PermitAttempt<'permit, 'request, 'fingerprint>
impl<'permit, 'request, 'fingerprint> Freeze for PermitAttempt<'permit, 'request, 'fingerprint>
impl<'permit, 'request, 'fingerprint> RefUnwindSafe for PermitAttempt<'permit, 'request, 'fingerprint>
impl<'permit, 'request, 'fingerprint> Send for PermitAttempt<'permit, 'request, 'fingerprint>
impl<'permit, 'request, 'fingerprint> Sync for PermitAttempt<'permit, 'request, 'fingerprint>
impl<'permit, 'request, 'fingerprint> Unpin for PermitAttempt<'permit, 'request, 'fingerprint>
impl<'permit, 'request, 'fingerprint> UnsafeUnpin for PermitAttempt<'permit, 'request, 'fingerprint>
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