Trait SplitByteSlice

unsafe trait SplitByteSlice: ByteSlice

A ByteSlice that can be split in two.

Safety

Unsafe code may depend for its soundness on the assumption that split_at and split_at_unchecked are implemented correctly. In particular, given B: SplitByteSlice and b: B, if b.deref() returns a byte slice with address addr and length len, then if split <= len, both of these invocations:

...will return (first, second) such that:

Required Methods

unsafe fn split_at_unchecked(self: Self, mid: usize) -> (Self, Self)

Splits the slice at the midpoint, possibly omitting bounds checks.

s.split_at_unchecked(mid) returns s[..mid] and s[mid..].

Safety

mid must not be greater than self.deref().len().

Panics

Implementations of this method may choose to perform a bounds check and panic if mid > self.deref().len(). They may also panic for any other reason. Since it is optional, callers must not rely on this behavior for soundness.

Provided Methods

fn split_at(self: Self, mid: usize) -> Result<(Self, Self), Self>

Attempts to split self at the midpoint.

s.split_at(mid) returns Ok((s[..mid], s[mid..])) if mid <= s.deref().len() and otherwise returns Err(s).

Safety

Unsafe code may rely on this function correctly implementing the above functionality.

Implementors