Struct rustls::vecbuf::ChunkVecBuffer
source · pub(crate) struct ChunkVecBuffer {
chunks: VecDeque<Vec<u8>>,
limit: Option<usize>,
}
Expand description
This is a byte buffer that is built from a vector of byte vectors. This avoids extra copies when appending a new byte vector, at the expense of more complexity when reading out.
Fields§
§chunks: VecDeque<Vec<u8>>
§limit: Option<usize>
Implementations§
source§impl ChunkVecBuffer
impl ChunkVecBuffer
pub(crate) fn new(limit: Option<usize>) -> Self
sourcepub(crate) fn set_limit(&mut self, new_limit: Option<usize>)
pub(crate) fn set_limit(&mut self, new_limit: Option<usize>)
Sets the upper limit on how many bytes this object can store.
Setting a lower limit than the currently stored data is not an error.
A None
limit is interpreted as no limit.
pub(crate) fn is_full(&self) -> bool
sourcepub(crate) fn apply_limit(&self, len: usize) -> usize
pub(crate) fn apply_limit(&self, len: usize) -> usize
For a proposed append of len
bytes, how many
bytes should we actually append to adhere to the
currently set limit
?
sourcepub(crate) fn append_limited_copy(&mut self, bytes: &[u8]) -> usize
pub(crate) fn append_limited_copy(&mut self, bytes: &[u8]) -> usize
Append a copy of bytes
, perhaps a prefix if
we’re near the limit.
sourcepub(crate) fn pop(&mut self) -> Option<Vec<u8>>
pub(crate) fn pop(&mut self) -> Option<Vec<u8>>
Take one of the chunks from this object. This
function panics if the object is_empty
.
sourcepub(crate) fn read(&mut self, buf: &mut [u8]) -> Result<usize>
pub(crate) fn read(&mut self, buf: &mut [u8]) -> Result<usize>
Read data out of this object, writing it into buf
and returning how many bytes were written there.
fn consume(&mut self, used: usize)
Auto Trait Implementations§
impl Freeze for ChunkVecBuffer
impl RefUnwindSafe for ChunkVecBuffer
impl Send for ChunkVecBuffer
impl Sync for ChunkVecBuffer
impl Unpin for ChunkVecBuffer
impl UnwindSafe for ChunkVecBuffer
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