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", so this trait is not object safe.

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§