Subsliceable

Trait Subsliceable 

Source
pub unsafe trait Subsliceable: Slice {
    // Required method
    unsafe fn check_subslice(&self, start: usize, end: usize);

    // Provided methods
    unsafe fn check_advance(&self, offset: usize) { ... }
    unsafe fn check_truncate(&self, len: usize) { ... }
    unsafe fn check_split(&self, at: usize) { ... }
}
Expand description

A slice that can be split into smaller subslices.

§Safety

If Self::check_subslice (or other derived methods) doesn’t panic, then the subslice with the given range must be valid.

Required Methods§

Source

unsafe fn check_subslice(&self, start: usize, end: usize)

Check if a subslice is valid.

§Safety

start..end must be a valid range of the item slice returned by Slice::to_slice.

Provided Methods§

Source

unsafe fn check_advance(&self, offset: usize)

Same as self.check_subslice(offset, self.to_slice().len()).

§Safety

See Self::check_subslice.

Source

unsafe fn check_truncate(&self, len: usize)

Same as self.check_subslice(0, offset)).

§Safety

See Self::check_subslice.

Source

unsafe fn check_split(&self, at: usize)

Same as { self.check_subslice(0, at)); self.check_subslice(at, self.to_slice().len()) }.

§Safety

See Self::check_subslice.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl Subsliceable for str

Source§

unsafe fn check_subslice(&self, start: usize, end: usize)

Source§

unsafe fn check_split(&self, at: usize)

Source§

impl Subsliceable for BStr

Available on crate feature bstr only.
Source§

unsafe fn check_subslice(&self, _start: usize, _end: usize)

Source§

impl<T: Send + Sync + 'static> Subsliceable for [T]

Source§

unsafe fn check_subslice(&self, _start: usize, _end: usize)

Implementors§