Skip to main content

ClientWorkspaceLease

Struct ClientWorkspaceLease 

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

Source

pub fn capacities(&self) -> (usize, usize, usize, usize)

Returns all workspace capacities without exposing stored bytes.

Trait Implementations§

Source§

impl<const N: usize> Debug for ClientWorkspaceLease<'_, '_, N>

Source§

fn fmt(&self, formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

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> 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, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

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.