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§
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>
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.