Struct WriteHalf

Source
pub struct WriteHalf<'a, M: RingMem> { /* private fields */ }
Expand description

The writer for the outgoing ring buffer of a Queue.

Implementations§

Source§

impl<'a, M: RingMem> WriteHalf<'a, M>

Source

pub fn poll_ready( &mut self, cx: &mut Context<'_>, send_size: usize, ) -> Poll<Result<(), Error>>

Polls the outgoing ring for the ability to send a packet of size send_size.

send_size can be computed by calling try_write and extracting the size from TryReadError::Full(send_size).

Source

pub async fn wait_ready(&mut self, send_size: usize) -> Result<(), Error>

Waits until there is enough space in the ring to send a packet of size send_size.

send_size can be computed by calling try_write and extracting the size from TryReadError::Full(send_size).

Source

pub fn batched(&mut self) -> WriteBatch<'_, M>

Returns an object for writing multiple packets at once.

The batch will be committed when the returned object is dropped.

This reduces the overhead of writing multiple packets by updating the ring pointers and signaling an interrupt only once, when the batch is committed.

Source

pub fn can_write(&mut self, send_size: usize) -> Result<bool, Error>

Checks the outgiong ring for the capacity to send a packet of size send_size.

Source

pub fn capacity(&self) -> usize

The ring’s capacity in bytes.

Source

pub fn try_write( &mut self, packet: &OutgoingPacket<'_, '_>, ) -> Result<(), TryWriteError>

Tries to write a packet into the outgoing ring.

Fails with TryReadError::Full(send_size) if the ring is full.

Source

pub fn poll_write( &mut self, cx: &mut Context<'_>, packet: &OutgoingPacket<'_, '_>, ) -> Poll<Result<(), Error>>

Polls the ring for successful write of packet.

Source

pub fn write<'b, 'c>( &'b mut self, packet: OutgoingPacket<'c, 'b>, ) -> Write<'a, 'b, 'c, M>

Writes a packet.

Auto Trait Implementations§

§

impl<'a, M> Freeze for WriteHalf<'a, M>

§

impl<'a, M> !RefUnwindSafe for WriteHalf<'a, M>

§

impl<'a, M> Send for WriteHalf<'a, M>
where M: Sync,

§

impl<'a, M> Sync for WriteHalf<'a, M>
where M: Sync,

§

impl<'a, M> Unpin for WriteHalf<'a, M>

§

impl<'a, M> !UnwindSafe for WriteHalf<'a, M>

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.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> IntoAny for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Converts into a Box<dyn Any>.
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.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more