pub struct ZeroCopyVec<'a, L, T, const PAD: bool = true>where
L: ZeroCopyTraits,
T: ZeroCopyTraits,{ /* private fields */ }Expand description
ZeroCopyVec is a custom vector implementation which forbids
post-initialization reallocations. The size is not known during compile
time (that makes it different from arrays), but can be defined only once
(that makes it different from Vec).
Implementations§
Source§impl<'a, L, T, const PAD: bool> ZeroCopyVec<'a, L, T, PAD>
impl<'a, L, T, const PAD: bool> ZeroCopyVec<'a, L, T, PAD>
pub fn new(capacity: L, bytes: &'a mut [u8]) -> Result<Self, ZeroCopyError>
pub fn new_at( capacity: L, bytes: &'a mut [u8], ) -> Result<(Self, &'a mut [u8]), ZeroCopyError>
pub fn from_bytes(bytes: &'a mut [u8]) -> Result<Self, ZeroCopyError>
pub fn from_bytes_at( bytes: &'a mut [u8], ) -> Result<(Self, &'a mut [u8]), ZeroCopyError>
pub fn push(&mut self, value: T) -> Result<(), ZeroCopyError>
pub fn clear(&mut self)
pub fn zero_out(&mut self)
pub fn metadata_size() -> usize
pub fn data_size(capacity: L) -> usize
pub fn required_size_for_capacity(capacity: L) -> usize
pub fn capacity(&self) -> usize
pub fn len(&self) -> usize
pub fn is_empty(&self) -> bool
pub fn get(&self, index: usize) -> Option<&T>
pub fn get_mut(&mut self, index: usize) -> Option<&mut T>
pub fn first(&self) -> Option<&T>
pub fn first_mut(&mut self) -> Option<&mut T>
pub fn last(&self) -> Option<&T>
pub fn last_mut(&mut self) -> Option<&mut T>
pub fn as_slice(&self) -> &[T]
pub fn as_mut_slice(&mut self) -> &mut [T]
pub fn extend_from_slice(&mut self, slice: &[T]) -> Result<(), ZeroCopyError>
Source§impl<'a, L, T, const PAD: bool> ZeroCopyVec<'_, L, T, PAD>
impl<'a, L, T, const PAD: bool> ZeroCopyVec<'_, L, T, PAD>
Trait Implementations§
Source§impl<L, T, const PAD: bool> Debug for ZeroCopyVec<'_, L, T, PAD>
impl<L, T, const PAD: bool> Debug for ZeroCopyVec<'_, L, T, PAD>
Source§impl<'a, L, T, const PAD: bool> IntoIterator for &'a ZeroCopyVec<'_, L, T, PAD>
impl<'a, L, T, const PAD: bool> IntoIterator for &'a ZeroCopyVec<'_, L, T, PAD>
Source§impl<'a, L, T, const PAD: bool> IntoIterator for &'a mut ZeroCopyVec<'_, L, T, PAD>
impl<'a, L, T, const PAD: bool> IntoIterator for &'a mut ZeroCopyVec<'_, L, T, PAD>
Source§impl<L, T, const PAD: bool> PartialEq for ZeroCopyVec<'_, L, T, PAD>
impl<L, T, const PAD: bool> PartialEq for ZeroCopyVec<'_, L, T, PAD>
Auto Trait Implementations§
impl<'a, L, T, const PAD: bool> Freeze for ZeroCopyVec<'a, L, T, PAD>
impl<'a, L, T, const PAD: bool> RefUnwindSafe for ZeroCopyVec<'a, L, T, PAD>where
L: RefUnwindSafe,
T: RefUnwindSafe,
impl<'a, L, T, const PAD: bool> Send for ZeroCopyVec<'a, L, T, PAD>
impl<'a, L, T, const PAD: bool> Sync for ZeroCopyVec<'a, L, T, PAD>
impl<'a, L, T, const PAD: bool> Unpin for ZeroCopyVec<'a, L, T, PAD>
impl<'a, L, T, const PAD: bool = true> !UnwindSafe for ZeroCopyVec<'a, L, T, PAD>
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