pub struct BipBufferWriter { /* private fields */ }
Expand description
Represents the send side of the single-producer single-consumer circular buffer.
BipBufferWriter
is Send
so you can move it to the sender thread.
Implementations§
Source§impl BipBufferWriter
impl BipBufferWriter
Sourcepub fn reserve(&mut self, len: usize) -> Option<BipBufferWriterReservation<'_>>
pub fn reserve(&mut self, len: usize) -> Option<BipBufferWriterReservation<'_>>
Attempt to reserve the requested number of bytes. If no contiguous len
bytes are available
in the circular buffer, this method returns None
: check spin_reserve
for a method that
busy waits till space is available.
If successful, it returns a reservation that the sender can use to write data to the buffer. Dropping the reservation signals completion of the write and makes the data available to the reader.
Sourcepub fn spin_reserve(&mut self, len: usize) -> BipBufferWriterReservation<'_>
pub fn spin_reserve(&mut self, len: usize) -> BipBufferWriterReservation<'_>
Reserve the requested number of bytes. This method busy-waits until len
contiguous bytes
are available in the circular buffer.
If successful, it returns a reservation that the sender can use to write data to the buffer. Dropping the reservation signals completion of the write and makes the data available to the reader.
§Busy-waiting
If the current thread is scheduled on the same core as the receiver, busy-waiting may compete with the receiver […]
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 BipBufferReader
side still exists, this will fail and return
Err(self)
. If the BipBufferReader
side was dropped, this will return the underlying
storage.
§Panic
Panics if B is not the type of the underlying storage.