Trait SliceIndex

Source
pub trait SliceIndex: Sealed {
    type Output: ?Sized;

    // Required methods
    fn get(self, slice: &BStr) -> Option<&Self::Output>;
    fn get_mut(self, slice: &mut BStr) -> Option<&mut Self::Output>;
    unsafe fn get_unchecked(self, slice: &BStr) -> &Self::Output;
    unsafe fn get_unchecked_mut(self, slice: &mut BStr) -> &mut Self::Output;
    fn index(self, slice: &BStr) -> &Self::Output;
    fn index_mut(self, slice: &mut BStr) -> &mut Self::Output;
}
Expand description

A trait that parameterizes the different types of indexing a byte string.

In general, this trait makes it possible to define generic routines like get that can accept either single positions or ranges, and return single bytes or slices, respectively.

This trait is sealed such that callers cannot implement it. In general, callers should not need to interact with this trait directly unless you’re defining generic functions that index or slice a byte string.

Required Associated Types§

Source

type Output: ?Sized

The output type returned by methods. For indexing by position, this is always a single byte (u8). For ranges, this is always a slice (BStr).

Required Methods§

Source

fn get(self, slice: &BStr) -> Option<&Self::Output>

Returns a shared reference to the output at this location, if in bounds.

Source

fn get_mut(self, slice: &mut BStr) -> Option<&mut Self::Output>

Returns a mutable reference to the output at this location, if in bounds.

Source

unsafe fn get_unchecked(self, slice: &BStr) -> &Self::Output

Returns a shared reference to the output at this location, without performing any bounds checking.

Source

unsafe fn get_unchecked_mut(self, slice: &mut BStr) -> &mut Self::Output

Returns a mutable reference to the output at this location, without performing any bounds checking.

Source

fn index(self, slice: &BStr) -> &Self::Output

Returns a shared reference to the output at this location, panicking if out of bounds.

Source

fn index_mut(self, slice: &mut BStr) -> &mut Self::Output

Returns a mutable reference to the output at this location, panicking if out of bounds.

Implementations on Foreign Types§

Source§

impl SliceIndex for usize

Source§

type Output = u8

Source§

fn get(self, slice: &BStr) -> Option<&u8>

Source§

fn get_mut(self, slice: &mut BStr) -> Option<&mut u8>

Source§

unsafe fn get_unchecked(self, slice: &BStr) -> &u8

Source§

unsafe fn get_unchecked_mut(self, slice: &mut BStr) -> &mut u8

Source§

fn index(self, slice: &BStr) -> &u8

Source§

fn index_mut(self, slice: &mut BStr) -> &mut u8

Source§

impl SliceIndex for Range<usize>

Source§

type Output = BStr

Source§

fn get(self, slice: &BStr) -> Option<&BStr>

Source§

fn get_mut(self, slice: &mut BStr) -> Option<&mut BStr>

Source§

unsafe fn get_unchecked(self, slice: &BStr) -> &BStr

Source§

unsafe fn get_unchecked_mut(self, slice: &mut BStr) -> &mut BStr

Source§

fn index(self, slice: &BStr) -> &BStr

Source§

fn index_mut(self, slice: &mut BStr) -> &mut BStr

Source§

impl SliceIndex for RangeFrom<usize>

Source§

type Output = BStr

Source§

fn get(self, slice: &BStr) -> Option<&BStr>

Source§

fn get_mut(self, slice: &mut BStr) -> Option<&mut BStr>

Source§

unsafe fn get_unchecked(self, slice: &BStr) -> &BStr

Source§

unsafe fn get_unchecked_mut(self, slice: &mut BStr) -> &mut BStr

Source§

fn index(self, slice: &BStr) -> &BStr

Source§

fn index_mut(self, slice: &mut BStr) -> &mut BStr

Source§

impl SliceIndex for RangeFull

Source§

type Output = BStr

Source§

fn get(self, slice: &BStr) -> Option<&BStr>

Source§

fn get_mut(self, slice: &mut BStr) -> Option<&mut BStr>

Source§

unsafe fn get_unchecked(self, slice: &BStr) -> &BStr

Source§

unsafe fn get_unchecked_mut(self, slice: &mut BStr) -> &mut BStr

Source§

fn index(self, slice: &BStr) -> &BStr

Source§

fn index_mut(self, slice: &mut BStr) -> &mut BStr

Source§

impl SliceIndex for RangeInclusive<usize>

Source§

type Output = BStr

Source§

fn get(self, slice: &BStr) -> Option<&BStr>

Source§

fn get_mut(self, slice: &mut BStr) -> Option<&mut BStr>

Source§

unsafe fn get_unchecked(self, slice: &BStr) -> &BStr

Source§

unsafe fn get_unchecked_mut(self, slice: &mut BStr) -> &mut BStr

Source§

fn index(self, slice: &BStr) -> &BStr

Source§

fn index_mut(self, slice: &mut BStr) -> &mut BStr

Source§

impl SliceIndex for RangeTo<usize>

Source§

type Output = BStr

Source§

fn get(self, slice: &BStr) -> Option<&BStr>

Source§

fn get_mut(self, slice: &mut BStr) -> Option<&mut BStr>

Source§

unsafe fn get_unchecked(self, slice: &BStr) -> &BStr

Source§

unsafe fn get_unchecked_mut(self, slice: &mut BStr) -> &mut BStr

Source§

fn index(self, slice: &BStr) -> &BStr

Source§

fn index_mut(self, slice: &mut BStr) -> &mut BStr

Source§

impl SliceIndex for RangeToInclusive<usize>

Source§

type Output = BStr

Source§

fn get(self, slice: &BStr) -> Option<&BStr>

Source§

fn get_mut(self, slice: &mut BStr) -> Option<&mut BStr>

Source§

unsafe fn get_unchecked(self, slice: &BStr) -> &BStr

Source§

unsafe fn get_unchecked_mut(self, slice: &mut BStr) -> &mut BStr

Source§

fn index(self, slice: &BStr) -> &BStr

Source§

fn index_mut(self, slice: &mut BStr) -> &mut BStr

Implementors§