Skip to main content

SliceableSequenceMutOp

Trait SliceableSequenceMutOp 

Source
pub trait SliceableSequenceMutOp
where Self: AsRef<[Self::Item]>,
{ type Item: Clone; // Required methods fn do_set(&mut self, index: usize, value: Self::Item); fn do_delete(&mut self, index: usize); fn do_set_range(&mut self, range: Range<usize>, items: &[Self::Item]); fn do_delete_range(&mut self, range: Range<usize>); fn do_set_indexes<I>(&mut self, indexes: I, items: &[Self::Item]) where I: Iterator<Item = usize>; fn do_delete_indexes<I>(&mut self, range: Range<usize>, indexes: I) where I: Iterator<Item = usize>; // Provided methods fn setitem_by_index( &mut self, vm: &VirtualMachine, index: isize, value: Self::Item, ) -> PyResult<()> { ... } fn setitem_by_slice_no_resize( &mut self, vm: &VirtualMachine, slice: SaturatedSlice, items: &[Self::Item], ) -> PyResult<()> { ... } fn setitem_by_slice( &mut self, vm: &VirtualMachine, slice: SaturatedSlice, items: &[Self::Item], ) -> PyResult<()> { ... } fn delitem_by_index( &mut self, vm: &VirtualMachine, index: isize, ) -> PyResult<()> { ... } fn delitem_by_slice( &mut self, _vm: &VirtualMachine, slice: SaturatedSlice, ) -> PyResult<()> { ... } }

Required Associated Types§

Required Methods§

Source

fn do_set(&mut self, index: usize, value: Self::Item)

Source

fn do_delete(&mut self, index: usize)

Source

fn do_set_range(&mut self, range: Range<usize>, items: &[Self::Item])

as CPython, length of range and items could be different, function must act like Vec::splice()

Source

fn do_delete_range(&mut self, range: Range<usize>)

Source

fn do_set_indexes<I>(&mut self, indexes: I, items: &[Self::Item])
where I: Iterator<Item = usize>,

Source

fn do_delete_indexes<I>(&mut self, range: Range<usize>, indexes: I)
where I: Iterator<Item = usize>,

indexes must be positive order

Provided Methods§

Source

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

Source

fn setitem_by_slice_no_resize( &mut self, vm: &VirtualMachine, slice: SaturatedSlice, items: &[Self::Item], ) -> PyResult<()>

Source

fn setitem_by_slice( &mut self, vm: &VirtualMachine, slice: SaturatedSlice, items: &[Self::Item], ) -> PyResult<()>

Source

fn delitem_by_index( &mut self, vm: &VirtualMachine, index: isize, ) -> PyResult<()>

Source

fn delitem_by_slice( &mut self, _vm: &VirtualMachine, slice: SaturatedSlice, ) -> PyResult<()>

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> SliceableSequenceMutOp for Vec<T>

Source§

type Item = T

Source§

fn do_set(&mut self, index: usize, value: Self::Item)

Source§

fn do_delete(&mut self, index: usize)

Source§

fn do_set_range(&mut self, range: Range<usize>, items: &[Self::Item])

Source§

fn do_delete_range(&mut self, range: Range<usize>)

Source§

fn do_set_indexes<I>(&mut self, indexes: I, items: &[Self::Item])
where I: Iterator<Item = usize>,

Source§

fn do_delete_indexes<I>(&mut self, range: Range<usize>, indexes: I)
where I: Iterator<Item = usize>,

Implementors§