pub struct BipBufferReader { /* private fields */ }
Expand description
Represents the receive side of the single-producer single-consumer circular buffer.
BipBufferReader
is Send
so you can move it to the receiver thread.
Implementations§
Source§impl BipBufferReader
impl BipBufferReader
Sourcepub fn valid(&mut self) -> &mut [u8] ⓘ
pub fn valid(&mut self) -> &mut [u8] ⓘ
Returns a mutable reference to a slice that contains the data written by the writer and not yet consumed by the reader. This is the receiving end of the circular buffer.
The caller is free to mutate the data in this slice.
Sourcepub fn consume(&mut self, len: usize) -> bool
pub fn consume(&mut self, len: usize) -> bool
Consumes the first len
bytes in valid
. This marks them as read and they won’t be
included in the slice returned by the next invocation of valid
. This is used to
communicate the reader’s progress and free buffer space for future writes.
Sourcepub fn try_unwrap<B: DerefMut<Target = [u8]> + 'static>(self) -> Result<B, Self>
pub fn try_unwrap<B: DerefMut<Target = [u8]> + 'static>(self) -> Result<B, Self>
Attempts to recover the underlying storage. B must be the type of the storage passed to
bip_buffer_from
. If the BipBufferWriter
side still exists, this will fail and return
Err(self)
. If the BipBufferWriter
side was dropped, this will return the underlying
storage.
§Panic
Panics if B is not the type of the underlying storage.