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§
Sourceunsafe fn check_subslice(&self, start: usize, end: usize)
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§
Sourceunsafe fn check_advance(&self, offset: usize)
unsafe fn check_advance(&self, offset: usize)
Sourceunsafe fn check_truncate(&self, len: usize)
unsafe fn check_truncate(&self, len: usize)
Sourceunsafe fn check_split(&self, at: usize)
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
impl Subsliceable for str
unsafe fn check_subslice(&self, start: usize, end: usize)
unsafe fn check_split(&self, at: usize)
Source§impl Subsliceable for BStr
Available on crate feature bstr
only.
impl Subsliceable for BStr
Available on crate feature
bstr
only.