pub trait SliceableSequenceMutOpwhere
    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<()>

Implementations on Foreign Types§

source§

impl<T: Clone> SliceableSequenceMutOp for Vec<T>

§

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§