Skip to main content

AsyncPayloadBuffer

Struct AsyncPayloadBuffer 

Source
pub struct AsyncPayloadBuffer<'a, T: FromBytes + IntoBytes + KnownLayout + Copy> { /* private fields */ }
Expand description

An asynchronous version of PayloadBuffer that yields when committing if the queue is full. Dropping this buffer automatically rolls back the payload allocation if not committed.

Implementations§

Source§

impl<'a, T: FromBytes + IntoBytes + KnownLayout + Copy> AsyncPayloadBuffer<'a, T>

Source

pub fn data(&mut self) -> &mut MutPtrByteSlice<'a>

Returns a mutable slice to the reserved payload bytes.

Source

pub fn offset(&self) -> u32

Returns the absolute VMO offset where this payload reservation begins.

Source

pub async fn commit(self, msg: T) -> Result<(), Status>

Pushes the given message to the FIFO and commits this payload allocation, linking the payload to the queue slot. Yielding if the queue is full.

Trait Implementations§

Source§

impl<'a, T: FromBytes + IntoBytes + KnownLayout + Copy> Drop for AsyncPayloadBuffer<'a, T>

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

fn pin_drop(self: Pin<&mut Self>)

🔬This is a nightly-only experimental API. (pin_ergonomics)
Execute the destructor for this type, but different to Drop::drop, it requires self to be pinned. Read more

Auto Trait Implementations§

§

impl<'a, T> !UnwindSafe for AsyncPayloadBuffer<'a, T>

§

impl<'a, T> Freeze for AsyncPayloadBuffer<'a, T>

§

impl<'a, T> RefUnwindSafe for AsyncPayloadBuffer<'a, T>
where T: RefUnwindSafe,

§

impl<'a, T> Send for AsyncPayloadBuffer<'a, T>
where T: Send,

§

impl<'a, T> Sync for AsyncPayloadBuffer<'a, T>
where T: Sync,

§

impl<'a, T> Unpin for AsyncPayloadBuffer<'a, T>

§

impl<'a, T> UnsafeUnpin for AsyncPayloadBuffer<'a, T>

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.

§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
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.