Trait zerocopy::ByteSlice

source ·
pub unsafe trait ByteSlice: Deref<Target = [u8]> + Sized + Sealed {
    // Required methods
    fn as_ptr(&self) -> *const u8;
    fn split_at(self, mid: usize) -> (Self, Self);
}
Expand description

A mutable or immutable reference to a byte slice.

ByteSlice abstracts over the mutability of a byte slice reference, and is implemented for various special reference types such as Ref<[u8]> and RefMut<[u8]>.

Note that, while it would be technically possible, ByteSlice is not implemented for Vec<u8>, as the only way to implement the split_at method would involve reallocation, and split_at must be a very cheap operation in order for the utilities in this crate to perform as designed.

Required Methods§

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl<'a> ByteSlice for &'a [u8]

source§

impl<'a> ByteSlice for &'a mut [u8]

source§

impl<'a> ByteSlice for Ref<'a, [u8]>

source§

impl<'a> ByteSlice for RefMut<'a, [u8]>

Implementors§