Skip to main content

AsyncConsumer

Struct AsyncConsumer 

Source
pub struct AsyncConsumer<T> { /* private fields */ }
Expand description

Async receiving half. Implements Stream.

Implementations§

Source§

impl<T> AsyncConsumer<T>

Source

pub fn pop(&mut self) -> Option<T>

Pop one item from the prefetched window. Zero atomics. Call release after draining a batch.

Source

pub fn release(&mut self)

Publish consumed position so the producer can reuse slots, and wake the producer if it is waiting for space.

Source

pub fn prefetch(&mut self) -> usize

Load all items flushed since the last prefetch. One Acquire load.

Source

pub fn prefetch_and_pop(&mut self) -> Option<T>

Prefetch + pop + release in one call.

Source

pub fn is_empty(&self) -> bool

Source

pub fn capacity(&self) -> usize

Source

pub fn len(&self) -> usize

Trait Implementations§

Source§

impl<T> Debug for AsyncConsumer<T>

Source§

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

Formats the value using the given formatter. Read more
Source§

impl<T> Drop for AsyncConsumer<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
Source§

impl<T: Send> Send for AsyncConsumer<T>

Source§

impl<T> Stream for AsyncConsumer<T>

Source§

type Item = T

Values yielded by the stream.
Source§

fn poll_next( self: Pin<&mut Self>, cx: &mut Context<'_>, ) -> Poll<Option<Self::Item>>

Attempt to pull out the next value of this stream, registering the current task for wakeup if the value is not yet available, and returning None if the stream is exhausted. Read more
Source§

fn size_hint(&self) -> (usize, Option<usize>)

Returns the bounds on the remaining length of the stream. Read more

Auto Trait Implementations§

§

impl<T> !RefUnwindSafe for AsyncConsumer<T>

§

impl<T> !UnwindSafe for AsyncConsumer<T>

§

impl<T> Freeze for AsyncConsumer<T>

§

impl<T> Sync for AsyncConsumer<T>
where T: Send,

§

impl<T> Unpin for AsyncConsumer<T>

§

impl<T> UnsafeUnpin for AsyncConsumer<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.

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

impl<S, T, E> TryStream for S
where S: Stream<Item = Result<T, E>> + ?Sized,

Source§

type Ok = T

The type of successful values yielded by this future
Source§

type Error = E

The type of failures yielded by this future
Source§

fn try_poll_next( self: Pin<&mut S>, cx: &mut Context<'_>, ) -> Poll<Option<Result<<S as TryStream>::Ok, <S as TryStream>::Error>>>

Poll this TryStream as if it were a Stream. Read more