pub struct VecBuffer { /* private fields */ }Expand description
An owned-data Buffer object.
Implementations§
Source§impl VecBuffer
impl VecBuffer
Sourcepub fn from_data<B: AsRef<[u8]>>(data: B) -> Self
pub fn from_data<B: AsRef<[u8]>>(data: B) -> Self
Create a new VecBuffer object with initialization data.
Sourcepub fn from_file<P: AsRef<Path>>(filename: P) -> Result<Self, Error>
pub fn from_file<P: AsRef<Path>>(filename: P) -> Result<Self, Error>
Create a new VecBuffer from the given file data.
Sourcepub fn with_initial_size(size: usize) -> Self
pub fn with_initial_size(size: usize) -> Self
Create a new VecBuffer with a given starting size. This will zero out the
buffer on initialization.
Sourcepub fn as_ptr_buffer(&self) -> PtrBuffer
pub fn as_ptr_buffer(&self) -> PtrBuffer
Create a PtrBuffer object from this VecBuffer object.
Sourcepub fn append<B: AsRef<[u8]>>(&mut self, data: B)
pub fn append<B: AsRef<[u8]>>(&mut self, data: B)
Appends the given data to the end of the buffer. This resizes and expands the underlying vector.
Sourcepub fn append_ref<T: Castable>(&mut self, data: &T) -> Result<(), Error>
pub fn append_ref<T: Castable>(&mut self, data: &T) -> Result<(), Error>
Appends the given reference to the end of the buffer. This resizes and expands the underlying vector.
Sourcepub fn append_slice_ref<T: Castable>(&mut self, data: &[T]) -> Result<(), Error>
pub fn append_slice_ref<T: Castable>(&mut self, data: &[T]) -> Result<(), Error>
Appends the given slice reference to the end of the buffer. This resizes and expands the underlying vector.
Sourcepub fn insert(&mut self, offset: usize, element: u8)
pub fn insert(&mut self, offset: usize, element: u8)
Insert a given element at the given offset, expanding the vector by one. See Vec::insert.
Sourcepub fn remove(&mut self, offset: usize)
pub fn remove(&mut self, offset: usize)
Remove a given element at the given offset, shrinking the vector by one. See Vec::remove.
Sourcepub fn retain<F>(&mut self, f: F)
pub fn retain<F>(&mut self, f: F)
Retains only the elements specified by the predicate. See Vec::retain.
Sourcepub fn split_off(&mut self, at: usize) -> Self
pub fn split_off(&mut self, at: usize) -> Self
Split off into another VecBuffer instance at the given midpoint. See Vec::split_off.
Sourcepub fn resize_with<F>(&mut self, new_len: usize, f: F)
pub fn resize_with<F>(&mut self, new_len: usize, f: F)
Resize the buffer to new size, filling with the given closure f. See Vec::resize_with.
Sourcepub fn resize(&mut self, new_len: usize, value: u8)
pub fn resize(&mut self, new_len: usize, value: u8)
Resize the given buffer and fill the void with the given value. See Vec::resize.
Sourcepub fn dedup(&mut self)
pub fn dedup(&mut self)
Deduplicate the values in this buffer. See Vec::dedup.
Trait Implementations§
Source§impl Buffer for VecBuffer
impl Buffer for VecBuffer
Source§fn as_mut_ptr(&mut self) -> *mut u8
fn as_mut_ptr(&mut self) -> *mut u8
Get the VecBuffer object as a mutable pointer.
Source§fn as_mut_slice(&mut self) -> &mut [u8] ⓘ
fn as_mut_slice(&mut self) -> &mut [u8] ⓘ
Get the VecBuffer object as a mutable slice.
Source§fn as_ptr_range(&self) -> Range<*const u8>
fn as_ptr_range(&self) -> Range<*const u8>
Source§fn as_mut_ptr_range(&mut self) -> Range<*mut u8>
fn as_mut_ptr_range(&mut self) -> Range<*mut u8>
Source§fn validate_ptr(&self, ptr: *const u8) -> bool
fn validate_ptr(&self, ptr: *const u8) -> bool
Source§fn ptr_to_offset(&self, ptr: *const u8) -> Result<usize, Error>
fn ptr_to_offset(&self, ptr: *const u8) -> Result<usize, Error>
Source§fn ref_to_offset<T>(&self, data: &T) -> Result<usize, Error>
fn ref_to_offset<T>(&self, data: &T) -> Result<usize, Error>
Source§fn swap(&mut self, a: usize, b: usize)
fn swap(&mut self, a: usize, b: usize)
slice::swap
for more details.Source§fn reverse(&mut self)
fn reverse(&mut self)
slice::reverse for more details.Source§fn iter(&self) -> BufferIter<'_> ⓘ
fn iter(&self) -> BufferIter<'_> ⓘ
BufferIter) into the buffer.Source§fn iter_mut(&mut self) -> BufferIterMut<'_> ⓘ
fn iter_mut(&mut self) -> BufferIterMut<'_> ⓘ
BufferIterMut) into the buffer.Source§fn get<I: SliceIndex<[u8]>>(&self, index: I) -> Option<&I::Output>
fn get<I: SliceIndex<[u8]>>(&self, index: I) -> Option<&I::Output>
slice::get for more details.Source§fn get_mut<I: SliceIndex<[u8]>>(&mut self, index: I) -> Option<&mut I::Output>
fn get_mut<I: SliceIndex<[u8]>>(&mut self, index: I) -> Option<&mut I::Output>
slice::get_mut for more details.Source§fn get_ref<T: Castable>(&self, offset: usize) -> Result<&T, Error>
fn get_ref<T: Castable>(&self, offset: usize) -> Result<&T, Error>
Source§unsafe fn get_ref_unaligned<T>(&self, offset: usize) -> Result<&T, Error>
unsafe fn get_ref_unaligned<T>(&self, offset: usize) -> Result<&T, Error>
Source§unsafe fn force_get_ref<T: Castable>(&self, offset: usize) -> Result<&T, Error>
unsafe fn force_get_ref<T: Castable>(&self, offset: usize) -> Result<&T, Error>
Source§fn get_mut_ref<T: Castable>(&mut self, offset: usize) -> Result<&mut T, Error>
fn get_mut_ref<T: Castable>(&mut self, offset: usize) -> Result<&mut T, Error>
Buffer::get_ref.Source§unsafe fn get_mut_ref_unaligned<T>(
&mut self,
offset: usize,
) -> Result<&mut T, Error>
unsafe fn get_mut_ref_unaligned<T>( &mut self, offset: usize, ) -> Result<&mut T, Error>
Source§unsafe fn force_get_mut_ref<T: Castable>(
&mut self,
offset: usize,
) -> Result<&mut T, Error>
unsafe fn force_get_mut_ref<T: Castable>( &mut self, offset: usize, ) -> Result<&mut T, Error>
Source§fn make_mut_ref<T: Castable>(&mut self, data: &T) -> Result<&mut T, Error>
fn make_mut_ref<T: Castable>(&mut self, data: &T) -> Result<&mut T, Error>
Source§unsafe fn make_mut_ref_unaligned<T>(
&mut self,
data: &T,
) -> Result<&mut T, Error>
unsafe fn make_mut_ref_unaligned<T>( &mut self, data: &T, ) -> Result<&mut T, Error>
Source§unsafe fn force_make_mut_ref<T: Castable>(
&mut self,
data: &T,
) -> Result<&mut T, Error>
unsafe fn force_make_mut_ref<T: Castable>( &mut self, data: &T, ) -> Result<&mut T, Error>
Source§fn get_slice_ref<T: Castable>(
&self,
offset: usize,
size: usize,
) -> Result<&[T], Error>
fn get_slice_ref<T: Castable>( &self, offset: usize, size: usize, ) -> Result<&[T], Error>
Source§unsafe fn get_slice_ref_unaligned<T>(
&self,
offset: usize,
size: usize,
) -> Result<&[T], Error>
unsafe fn get_slice_ref_unaligned<T>( &self, offset: usize, size: usize, ) -> Result<&[T], Error>
Source§unsafe fn force_get_slice_ref<T: Castable>(
&self,
offset: usize,
size: usize,
) -> Result<&[T], Error>
unsafe fn force_get_slice_ref<T: Castable>( &self, offset: usize, size: usize, ) -> Result<&[T], Error>
Source§fn get_mut_slice_ref<T: Castable>(
&mut self,
offset: usize,
size: usize,
) -> Result<&mut [T], Error>
fn get_mut_slice_ref<T: Castable>( &mut self, offset: usize, size: usize, ) -> Result<&mut [T], Error>
Buffer::get_slice_ref.Source§unsafe fn get_mut_slice_ref_unaligned<T>(
&mut self,
offset: usize,
size: usize,
) -> Result<&mut [T], Error>
unsafe fn get_mut_slice_ref_unaligned<T>( &mut self, offset: usize, size: usize, ) -> Result<&mut [T], Error>
Buffer::get_slice_ref_unaligned.Source§unsafe fn force_get_mut_slice_ref<T: Castable>(
&mut self,
offset: usize,
size: usize,
) -> Result<&mut [T], Error>
unsafe fn force_get_mut_slice_ref<T: Castable>( &mut self, offset: usize, size: usize, ) -> Result<&mut [T], Error>
Source§unsafe fn make_mut_slice_ref_unaligned<T>(
&mut self,
data: &[T],
) -> Result<&mut [T], Error>
unsafe fn make_mut_slice_ref_unaligned<T>( &mut self, data: &[T], ) -> Result<&mut [T], Error>
Source§unsafe fn force_make_mut_slice_ref<T: Castable>(
&mut self,
data: &[T],
) -> Result<&mut [T], Error>
unsafe fn force_make_mut_slice_ref<T: Castable>( &mut self, data: &[T], ) -> Result<&mut [T], Error>
Source§fn read(&self, offset: usize, size: usize) -> Result<&[u8], Error>
fn read(&self, offset: usize, size: usize) -> Result<&[u8], Error>
Source§fn read_mut(&mut self, offset: usize, size: usize) -> Result<&mut [u8], Error>
fn read_mut(&mut self, offset: usize, size: usize) -> Result<&mut [u8], Error>
Source§fn write_ref<T: Castable>(
&mut self,
offset: usize,
data: &T,
) -> Result<(), Error>
fn write_ref<T: Castable>( &mut self, offset: usize, data: &T, ) -> Result<(), Error>
Source§fn write_slice_ref<T: Castable>(
&mut self,
offset: usize,
data: &[T],
) -> Result<(), Error>
fn write_slice_ref<T: Castable>( &mut self, offset: usize, data: &[T], ) -> Result<(), Error>
Source§fn start_with<B: AsRef<[u8]>>(&mut self, data: B) -> Result<(), Error>
fn start_with<B: AsRef<[u8]>>(&mut self, data: B) -> Result<(), Error>
Source§fn start_with_ref<T: Castable>(&mut self, data: &T) -> Result<(), Error>
fn start_with_ref<T: Castable>(&mut self, data: &T) -> Result<(), Error>
Source§fn start_with_slice_ref<T: Castable>(&mut self, data: &[T]) -> Result<(), Error>
fn start_with_slice_ref<T: Castable>(&mut self, data: &[T]) -> Result<(), Error>
Source§fn end_with<B: AsRef<[u8]>>(&mut self, data: B) -> Result<(), Error>
fn end_with<B: AsRef<[u8]>>(&mut self, data: B) -> Result<(), Error>
Source§fn end_with_ref<T: Castable>(&mut self, data: &T) -> Result<(), Error>
fn end_with_ref<T: Castable>(&mut self, data: &T) -> Result<(), Error>
Source§fn end_with_slice_ref<T: Castable>(&mut self, data: &[T]) -> Result<(), Error>
fn end_with_slice_ref<T: Castable>(&mut self, data: &[T]) -> Result<(), Error>
Source§fn search_ref<T: Castable>(&self, data: &T) -> Result<BufferSearchIter, Error>
fn search_ref<T: Castable>(&self, data: &T) -> Result<BufferSearchIter, Error>
u8 slice.
See Buffer::search.Source§fn search_slice_ref<T: Castable>(
&self,
data: &[T],
) -> Result<BufferSearchIter, Error>
fn search_slice_ref<T: Castable>( &self, data: &[T], ) -> Result<BufferSearchIter, Error>
u8 slice.
See Buffer::search.Source§fn search_dynamic<'a, B: AsRef<[Option<u8>]>>(
&'a self,
data: B,
) -> Result<BufferSearchDynamicIter<'a>, Error>
fn search_dynamic<'a, B: AsRef<[Option<u8>]>>( &'a self, data: B, ) -> Result<BufferSearchDynamicIter<'a>, Error>
Source§fn contains_ref<T: Castable>(&self, data: &T) -> Result<bool, Error>
fn contains_ref<T: Castable>(&self, data: &T) -> Result<bool, Error>
Source§fn contains_slice_ref<T: Castable>(&self, data: &[T]) -> Result<bool, Error>
fn contains_slice_ref<T: Castable>(&self, data: &[T]) -> Result<bool, Error>
Source§fn starts_with<B: AsRef<[u8]>>(&self, needle: B) -> bool
fn starts_with<B: AsRef<[u8]>>(&self, needle: B) -> bool
slice::starts_with.Source§fn ends_with<B: AsRef<[u8]>>(&self, needle: B) -> bool
fn ends_with<B: AsRef<[u8]>>(&self, needle: B) -> bool
slice::ends_with.Source§fn rotate_left(&mut self, mid: usize)
fn rotate_left(&mut self, mid: usize)
slice::rotate_left.Source§fn rotate_right(&mut self, mid: usize)
fn rotate_right(&mut self, mid: usize)
slice::rotate_right.Source§fn fill(&mut self, value: u8)
fn fill(&mut self, value: u8)
slice::fill.Source§fn fill_with<F>(&mut self, f: F)
fn fill_with<F>(&mut self, f: F)
slice::fill_with.Source§fn clone_from_data<B: AsRef<[u8]>>(&mut self, src: B)
fn clone_from_data<B: AsRef<[u8]>>(&mut self, src: B)
Source§fn copy_from_data<B: AsRef<[u8]>>(&mut self, src: B)
fn copy_from_data<B: AsRef<[u8]>>(&mut self, src: B)
Source§fn copy_within<R>(&mut self, src: R, dest: usize)where
R: RangeBounds<usize>,
fn copy_within<R>(&mut self, src: R, dest: usize)where
R: RangeBounds<usize>,
slice::copy_within.Source§fn swap_with_data<B: AsMut<[u8]>>(&mut self, other: B)
fn swap_with_data<B: AsMut<[u8]>>(&mut self, other: B)
Source§fn is_ascii(&self) -> bool
fn is_ascii(&self) -> bool
slice::is_ascii.Source§fn eq_ignore_ascii_case(&self, other: &[u8]) -> bool
fn eq_ignore_ascii_case(&self, other: &[u8]) -> bool
slice::eq_ignore_ascii_case.Source§fn make_ascii_uppercase(&mut self)
fn make_ascii_uppercase(&mut self)
slice::make_ascii_uppercase.Source§fn make_ascii_lowercase(&mut self)
fn make_ascii_lowercase(&mut self)
slice::make_ascii_lowercase.Source§fn sort(&mut self)
fn sort(&mut self)
slice::sort.Source§fn sort_by<F>(&mut self, compare: F)
fn sort_by<F>(&mut self, compare: F)
slice::sort_by.Source§fn sort_by_key<K, F>(&mut self, f: F)
fn sort_by_key<K, F>(&mut self, f: F)
slice::sort_by_key.