pub struct MergeQueue { /* private fields */ }Expand description
An unbounded queue of bytes intended for point-to-point communication between threads.
Writer/reader handle pairs are obtained via MergeQueue::new_pair.
Implementations§
Source§impl MergeQueue
impl MergeQueue
Sourcepub fn new(buzzer: Buzzer) -> MergeQueue
pub fn new(buzzer: Buzzer) -> MergeQueue
Allocates a new queue with an associated signal.
Sourcepub fn new_pair(
buzzer: Buzzer,
writer_policy: Option<Box<dyn SpillPolicy>>,
reader_policy: Option<Box<dyn SpillPolicy>>,
) -> (MergeQueue, MergeQueue)
pub fn new_pair( buzzer: Buzzer, writer_policy: Option<Box<dyn SpillPolicy>>, reader_policy: Option<Box<dyn SpillPolicy>>, ) -> (MergeQueue, MergeQueue)
Allocates a matched pair of handles on the same underlying queue,
each carrying its own policy. The first (writer) runs its policy
after each extend; the second (reader) runs its policy before
each drain_into.
Sourcepub fn is_complete(&self) -> bool
pub fn is_complete(&self) -> bool
Indicates that all input handles to the queue have dropped.
Trait Implementations§
Source§impl BytesPull for MergeQueue
impl BytesPull for MergeQueue
Source§fn drain_into(&mut self, vec: &mut Vec<Bytes>)
fn drain_into(&mut self, vec: &mut Vec<Bytes>)
Drains many bytes from the instance.
Source§impl BytesPush for MergeQueue
impl BytesPush for MergeQueue
Source§fn extend<I>(&mut self, iterator: I)where
I: IntoIterator<Item = Bytes>,
fn extend<I>(&mut self, iterator: I)where
I: IntoIterator<Item = Bytes>,
Pushes many bytes at the instance.
Source§impl Drop for MergeQueue
impl Drop for MergeQueue
Auto Trait Implementations§
impl Freeze for MergeQueue
impl !RefUnwindSafe for MergeQueue
impl Send for MergeQueue
impl !Sync for MergeQueue
impl Unpin for MergeQueue
impl UnsafeUnpin for MergeQueue
impl !UnwindSafe for MergeQueue
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more