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.