Skip to main content

SliceableSequenceOp

Trait SliceableSequenceOp 

Source
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>

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl<T: Clone> SliceableSequenceOp for [T]

Source§

type Item = T

Source§

type Sliced = Vec<T>

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§