pub unsafe trait ByteSlice: Deref<Target = [u8]> + Sized + ByteSliceSealed {
// Required method
fn split_at(self, mid: usize) -> (Self, Self);
// Provided method
fn as_ptr(&self) -> *const u8 { ... }
}
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§
sourcefn split_at(self, mid: usize) -> (Self, Self)
fn split_at(self, mid: usize) -> (Self, Self)
Splits the slice at the midpoint.
x.split_at(mid)
returns x[..mid]
and x[mid..]
.
§Panics
x.split_at(mid)
panics if mid > x.len()
.
Provided Methods§
Object Safety§
This trait is not object safe.