pub struct Slicer<'de> { /* private fields */ }Expand description
Takes a slice as input and divides it into smaller slices. This processes the slice from start to end by user-provided len sized chunks.
For example &[1, 2, 3, 4] --> &[1, 2] and &[3, 4].
Uses:
- When you know the length to slice at runtime but not compile time.
- When parsing formats within formats. For example,
the DHCP format has an options field that contains TLV
formatted options. See
options/options.rs.
Implementations§
Source§impl<'de> Slicer<'de>
impl<'de> Slicer<'de>
Sourcepub fn slice(&mut self, len: usize) -> Option<&'de [u8]>
pub fn slice(&mut self, len: usize) -> Option<&'de [u8]>
Returns the next len number of bytes and changes the current position the same amount.
Returns an Option instead of panicking. Use slice_unchecked if it is okay to panic.
Sourcepub fn slice_unchecked(&mut self, len: usize) -> &'de [u8] ⓘ
pub fn slice_unchecked(&mut self, len: usize) -> &'de [u8] ⓘ
Returns the next len number of bytes and changes the current position the same amount.
Can panic if slicing past array length. Use slice for no panic.
Sourcepub fn slice_remainder(&mut self) -> &'de [u8] ⓘ
pub fn slice_remainder(&mut self) -> &'de [u8] ⓘ
Returns the remaining bytes in the input and resets the current position to the start.
Auto Trait Implementations§
impl<'de> Freeze for Slicer<'de>
impl<'de> RefUnwindSafe for Slicer<'de>
impl<'de> Send for Slicer<'de>
impl<'de> Sync for Slicer<'de>
impl<'de> Unpin for Slicer<'de>
impl<'de> UnwindSafe for Slicer<'de>
Blanket Implementations§
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more