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

A consumer that can process (peek into) elements in a DFQueue, but not actually remove them. Do not wrap this in an Arc or Mutex, the queue it is already protected by those on the interior.

This does not provide a pop() method like most queues, because we do not permit the consumer to directly remove items from the queue. Instead, we require that an element can only be removed from the queue once it has been marked complete, providing a sort of transactional behavior.

Implementations§

source§

impl<T> DFQueueConsumer<T>

source

pub fn obtain_producer(&self) -> DFQueueProducer<T>

Returns a new DFQueueProducer cloned from this consumer instance, since there can be multiple producers.

source

pub fn peek(&self) -> Option<PeekedData<T>>

Returns the next non-completed element in the queue without actually removing it from the queue, or None if the queue is empty or in a temporarily-inconsistent state.

Trait Implementations§

source§

impl<T: Debug> Debug for DFQueueConsumer<T>

source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<T> !RefUnwindSafe for DFQueueConsumer<T>

§

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

§

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

§

impl<T> Unpin for DFQueueConsumer<T>

§

impl<T> !UnwindSafe for DFQueueConsumer<T>

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere 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 Twhere 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 Twhere U: Into<T>,

§

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 Twhere U: TryFrom<T>,

§

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.