pub struct MessageBuf { /* private fields */ }Expand description
A buffer for receiving messages from a channel.
A MessageBuf is essentially a byte buffer and a vector of
handles, but move semantics for “taking” handles requires special handling.
Note that for sending messages to a channel, the caller manages the buffers,
using a plain byte slice and Vec<Handle>.
Implementations§
Source§impl MessageBuf
impl MessageBuf
Sourcepub fn ensure_capacity_bytes(&mut self, n_bytes: usize)
pub fn ensure_capacity_bytes(&mut self, n_bytes: usize)
Ensure that the buffer has the capacity to hold at least n_bytes bytes.
Sourcepub fn ensure_capacity_handles(&mut self, n_handles: usize)
pub fn ensure_capacity_handles(&mut self, n_handles: usize)
Ensure that the buffer has the capacity to hold at least n_handles handles.
Sourcepub fn bytes(&self) -> &[u8] ⓘ
pub fn bytes(&self) -> &[u8] ⓘ
Get a reference to the bytes of the message buffer, as a &[u8] slice.
Sourcepub fn n_handles(&self) -> usize
pub fn n_handles(&self) -> usize
The number of handles in the message buffer. Note this counts the number
available when the message was received; take_handle does not affect
the count.
Sourcepub fn take_handle(&mut self, index: usize) -> Option<Handle>
pub fn take_handle(&mut self, index: usize) -> Option<Handle>
Take the handle at the specified index from the message buffer. If the
method is called again with the same index, it will return None, as
will happen if the index exceeds the number of handles available.