pub struct ClientWorkspaceLease<'pool, 'storage, const N: usize> { /* private fields */ }Expand description
One admitted workspace whose buffers remain uniquely borrowed until drop.
The lease owns all mutable borrows when moved into an async execution future, so caller code cannot touch any buffer while that request is live.
ⓘ
use cloud_sdk::client::{ClientWorkspace, ClientWorkspaceLease, ClientWorkspacePool};
async fn hold<const N: usize>(_: ClientWorkspaceLease<'_, '_, N>) {}
let pool = ClientWorkspacePool::<1>::new().unwrap();
let mut target = [0_u8; 16];
let mut request = [0_u8; 16];
let mut response = [0_u8; 16];
let mut headers = [0_u8; 16];
let workspace = ClientWorkspace::new(
&mut target,
&mut request,
&mut response,
&mut headers,
);
let lease = pool.try_acquire(workspace).unwrap();
let future = hold(lease);
response.fill(0xa5);
drop(future);Implementations§
Source§impl<const N: usize> ClientWorkspaceLease<'_, '_, N>
impl<const N: usize> ClientWorkspaceLease<'_, '_, N>
Trait Implementations§
Auto Trait Implementations§
impl<'pool, 'storage, const N: usize> !UnwindSafe for ClientWorkspaceLease<'pool, 'storage, N>
impl<'pool, 'storage, const N: usize> Freeze for ClientWorkspaceLease<'pool, 'storage, N>
impl<'pool, 'storage, const N: usize> RefUnwindSafe for ClientWorkspaceLease<'pool, 'storage, N>
impl<'pool, 'storage, const N: usize> Send for ClientWorkspaceLease<'pool, 'storage, N>
impl<'pool, 'storage, const N: usize> Sync for ClientWorkspaceLease<'pool, 'storage, N>
impl<'pool, 'storage, const N: usize> Unpin for ClientWorkspaceLease<'pool, 'storage, N>
impl<'pool, 'storage, const N: usize> UnsafeUnpin for ClientWorkspaceLease<'pool, 'storage, N>
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