pub struct Assembler { /* private fields */ }Expand description
A buffer (re)assembler.
Currently, up to a hardcoded limit of 4 or 32 holes can be tracked in the buffer.
Implementations
sourceimpl Assembler
impl Assembler
sourcepub fn new(size: usize) -> Assembler
pub fn new(size: usize) -> Assembler
Create a new buffer assembler for buffers of the given size.
sourcepub fn add(
&mut self,
offset: usize,
size: usize
) -> Result<(), TooManyHolesError>
pub fn add(
&mut self,
offset: usize,
size: usize
) -> Result<(), TooManyHolesError>
Add a new contiguous range to the assembler, and return Ok(()),
or return Err(()) if too many discontiguities are already recorded.
sourcepub fn remove_front(&mut self) -> Option<usize>
pub fn remove_front(&mut self) -> Option<usize>
Remove a contiguous range from the front of the assembler and Some(data_size),
or return None if there is no such range.
sourcepub fn iter_data(&self, first_offset: usize) -> AssemblerIter<'_>
pub fn iter_data(&self, first_offset: usize) -> AssemblerIter<'_>
Iterate over all of the contiguous data ranges.
This is used in calculating what data ranges have been received. The offset indicates the number of bytes of contiguous data received before the beginnings of this Assembler.
Data Hole Data |— 100 —|— 200 —|— 100 —|
An offset of 1500 would return the ranges: (1500, 1600), (1800, 1900)
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for Assembler
impl Send for Assembler
impl Sync for Assembler
impl Unpin for Assembler
impl UnwindSafe for Assembler
Blanket Implementations
impl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstablefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more