pub trait SliceableSequenceOp {
    type Item;
    type Sliced;

    // Required methods
    fn do_get(&self, index: usize) -> Self::Item;
    fn do_slice(&self, range: Range<usize>) -> Self::Sliced;
    fn do_slice_reverse(&self, range: Range<usize>) -> Self::Sliced;
    fn do_stepped_slice(&self, range: Range<usize>, step: usize) -> Self::Sliced;
    fn do_stepped_slice_reverse(
        &self,
        range: Range<usize>,
        step: usize
    ) -> Self::Sliced;
    fn empty() -> Self::Sliced;
    fn len(&self) -> usize;

    // Provided methods
    fn wrap_index(&self, p: isize) -> Option<usize> { ... }
    fn saturate_index(&self, p: isize) -> usize { ... }
    fn getitem_by_slice(
        &self,
        _vm: &VirtualMachine,
        slice: SaturatedSlice
    ) -> PyResult<Self::Sliced> { ... }
    fn getitem_by_index(
        &self,
        vm: &VirtualMachine,
        index: isize
    ) -> PyResult<Self::Item> { ... }
}

Required Associated Types§

Required Methods§

source

fn do_get(&self, index: usize) -> Self::Item

source

fn do_slice(&self, range: Range<usize>) -> Self::Sliced

source

fn do_slice_reverse(&self, range: Range<usize>) -> Self::Sliced

source

fn do_stepped_slice(&self, range: Range<usize>, step: usize) -> Self::Sliced

source

fn do_stepped_slice_reverse( &self, range: Range<usize>, step: usize ) -> Self::Sliced

source

fn empty() -> Self::Sliced

source

fn len(&self) -> usize

Provided Methods§

source

fn wrap_index(&self, p: isize) -> Option<usize>

source

fn saturate_index(&self, p: isize) -> usize

source

fn getitem_by_slice( &self, _vm: &VirtualMachine, slice: SaturatedSlice ) -> PyResult<Self::Sliced>

source

fn getitem_by_index( &self, vm: &VirtualMachine, index: isize ) -> PyResult<Self::Item>

Implementations on Foreign Types§

source§

impl<T: Clone> SliceableSequenceOp for [T]

§

type Item = T

§

type Sliced = Vec<T, Global>

source§

fn do_get(&self, index: usize) -> Self::Item

source§

fn do_slice(&self, range: Range<usize>) -> Self::Sliced

source§

fn do_slice_reverse(&self, range: Range<usize>) -> Self::Sliced

source§

fn do_stepped_slice(&self, range: Range<usize>, step: usize) -> Self::Sliced

source§

fn do_stepped_slice_reverse( &self, range: Range<usize>, step: usize ) -> Self::Sliced

source§

fn empty() -> Self::Sliced

source§

fn len(&self) -> usize

Implementors§