Skip to main content

AsyncSender

Struct AsyncSender 

Source
pub struct AsyncSender<T>(/* private fields */);
Expand description

The asynchronous sender endpoint for a VMO-backed FIFO queue.

Implementations§

Source§

impl<T: FromBytes + IntoBytes + KnownLayout + Copy> AsyncSender<T>

Source

pub fn new( vmo: Vmo, alignment: usize, queue_capacity: u32, ) -> Result<Self, Status>

Source

pub fn capacity(&self) -> u32

Returns the maximum number of items the queue can hold.

Source

pub fn is_full(&self) -> bool

Source

pub fn vmo(&self) -> &Vmo

Source

pub async fn push(&mut self, msg: T) -> Result<u64, Status>

Pushes a standalone message onto the queue, yielding to the executor if the queue is full.

Source

pub async fn reserve_payload( &mut self, size: usize, ) -> Result<AsyncPayloadBuffer<'_, T>, Status>

Reserves a payload buffer in the VMO. Yields to the executor if there is insufficient payload capacity available. Returns an AsyncPayloadBuffer that commits on success or rolls back on drop.

Auto Trait Implementations§

§

impl<T> Freeze for AsyncSender<T>

§

impl<T> RefUnwindSafe for AsyncSender<T>
where T: RefUnwindSafe,

§

impl<T> Send for AsyncSender<T>
where T: Send,

§

impl<T> Sync for AsyncSender<T>
where T: Sync,

§

impl<T> Unpin for AsyncSender<T>
where T: Unpin,

§

impl<T> UnsafeUnpin for AsyncSender<T>

§

impl<T> UnwindSafe for AsyncSender<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.