Struct swap_buffer_queue::buffer::BufferSlice
source · pub struct BufferSlice<'a, B, N>where
B: Buffer,{ /* private fields */ }
Expand description
Buffer
slice returned by Queue::try_dequeue
(see Buffer::Slice
).
Buffer is released when the slice is dropped, so the other buffer will be dequeued next,
unless BufferSlice::requeue
/BufferSlice::into_iter
is called.
Examples
let queue: Queue<VecBuffer<usize>> = Queue::with_capacity(42);
queue.try_enqueue([0]).unwrap();
queue.try_enqueue([1]).unwrap();
let slice = queue.try_dequeue().unwrap();
assert_eq!(slice.deref(), &[0, 1]);
assert_eq!(slice.into_iter().collect::<Vec<_>>(), vec![0, 1]);
Implementations§
source§impl<'a, B, N> BufferSlice<'a, B, N>where
B: Buffer,
impl<'a, B, N> BufferSlice<'a, B, N>where
B: Buffer,
sourcepub fn requeue(self)
pub fn requeue(self)
Reinsert the buffer at the beginning queue.
It will thus de dequeued again next.
Examples
let queue: Queue<VecBuffer<usize>> = Queue::with_capacity(42);
queue.try_enqueue([0]).unwrap();
queue.try_enqueue([1]).unwrap();
let slice = queue.try_dequeue().unwrap();
assert_eq!(slice.deref(), &[0, 1]);
slice.requeue();
let slice = queue.try_dequeue().unwrap();
assert_eq!(slice.deref(), &[0, 1]);
Trait Implementations§
source§impl<'a, B, N> Debug for BufferSlice<'a, B, N>
impl<'a, B, N> Debug for BufferSlice<'a, B, N>
source§impl<'a, B, N> Deref for BufferSlice<'a, B, N>where
B: Buffer,
impl<'a, B, N> Deref for BufferSlice<'a, B, N>where
B: Buffer,
source§impl<'a, B, N> DerefMut for BufferSlice<'a, B, N>where
B: Buffer,
impl<'a, B, N> DerefMut for BufferSlice<'a, B, N>where
B: Buffer,
source§impl<'a, B, N> Drop for BufferSlice<'a, B, N>where
B: Buffer,
impl<'a, B, N> Drop for BufferSlice<'a, B, N>where
B: Buffer,
source§impl<'a, B, N> IntoIterator for BufferSlice<'a, B, N>
impl<'a, B, N> IntoIterator for BufferSlice<'a, B, N>
Auto Trait Implementations§
impl<'a, B, N> !RefUnwindSafe for BufferSlice<'a, B, N>
impl<'a, B, N> Send for BufferSlice<'a, B, N>
impl<'a, B, N> Sync for BufferSlice<'a, B, N>
impl<'a, B, N> Unpin for BufferSlice<'a, B, N>
impl<'a, B, N> !UnwindSafe for BufferSlice<'a, B, N>
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