Skip to main content

PySequenceMethods

Trait PySequenceMethods 

Source
pub trait PySequenceMethods<'py>: Sealed {
Show 17 methods // Required methods fn len(&self) -> PyResult<usize>; fn is_empty(&self) -> PyResult<bool>; fn concat( &self, other: &Bound<'_, PySequence>, ) -> PyResult<Bound<'py, PySequence>>; fn repeat(&self, count: usize) -> PyResult<Bound<'py, PySequence>>; fn in_place_concat( &self, other: &Bound<'_, PySequence>, ) -> PyResult<Bound<'py, PySequence>>; fn in_place_repeat(&self, count: usize) -> PyResult<Bound<'py, PySequence>>; fn get_item(&self, index: usize) -> PyResult<Bound<'py, PyAny>>; fn get_slice( &self, begin: usize, end: usize, ) -> PyResult<Bound<'py, PySequence>>; fn set_item<I>(&self, i: usize, item: I) -> PyResult<()> where I: IntoPyObject<'py>; fn del_item(&self, i: usize) -> PyResult<()>; fn set_slice( &self, i1: usize, i2: usize, v: &Bound<'_, PyAny>, ) -> PyResult<()>; fn del_slice(&self, i1: usize, i2: usize) -> PyResult<()>; fn count<V>(&self, value: V) -> PyResult<usize> where V: IntoPyObject<'py>; fn contains<V>(&self, value: V) -> PyResult<bool> where V: IntoPyObject<'py>; fn index<V>(&self, value: V) -> PyResult<usize> where V: IntoPyObject<'py>; fn to_list(&self) -> PyResult<Bound<'py, PyList>>; fn to_tuple(&self) -> PyResult<Bound<'py, PyTuple>>;
}
Expand description

Implementation of functionality for PySequence.

These methods are defined for the Bound<'py, PySequence> smart pointer, so to use method call syntax these methods are separated into a trait, because stable Rust does not yet support arbitrary_self_types.

Required Methods§

Source

fn len(&self) -> PyResult<usize>

Returns the number of objects in sequence.

This is equivalent to the Python expression len(self).

Source

fn is_empty(&self) -> PyResult<bool>

Returns whether the sequence is empty.

Source

fn concat( &self, other: &Bound<'_, PySequence>, ) -> PyResult<Bound<'py, PySequence>>

Returns the concatenation of self and other.

This is equivalent to the Python expression self + other.

Source

fn repeat(&self, count: usize) -> PyResult<Bound<'py, PySequence>>

Returns the result of repeating a sequence object count times.

This is equivalent to the Python expression self * count.

Source

fn in_place_concat( &self, other: &Bound<'_, PySequence>, ) -> PyResult<Bound<'py, PySequence>>

Concatenates self and other, in place if possible.

This is equivalent to the Python expression self.__iadd__(other).

The Python statement self += other is syntactic sugar for self = self.__iadd__(other). __iadd__ should modify and return self if possible, but create and return a new object if not.

Source

fn in_place_repeat(&self, count: usize) -> PyResult<Bound<'py, PySequence>>

Repeats the sequence object count times and updates self, if possible.

This is equivalent to the Python expression self.__imul__(other).

The Python statement self *= other is syntactic sugar for self = self.__imul__(other). __imul__ should modify and return self if possible, but create and return a new object if not.

Source

fn get_item(&self, index: usize) -> PyResult<Bound<'py, PyAny>>

Returns the indexth element of the Sequence.

This is equivalent to the Python expression self[index] without support of negative indices.

Source

fn get_slice( &self, begin: usize, end: usize, ) -> PyResult<Bound<'py, PySequence>>

Returns the slice of sequence object between begin and end.

This is equivalent to the Python expression self[begin:end].

Source

fn set_item<I>(&self, i: usize, item: I) -> PyResult<()>
where I: IntoPyObject<'py>,

Assigns object item to the ith element of self.

This is equivalent to the Python statement self[i] = v.

Source

fn del_item(&self, i: usize) -> PyResult<()>

Deletes the ith element of self.

This is equivalent to the Python statement del self[i].

Source

fn set_slice(&self, i1: usize, i2: usize, v: &Bound<'_, PyAny>) -> PyResult<()>

Assigns the sequence v to the slice of self from i1 to i2.

This is equivalent to the Python statement self[i1:i2] = v.

Source

fn del_slice(&self, i1: usize, i2: usize) -> PyResult<()>

Deletes the slice from i1 to i2 from self.

This is equivalent to the Python statement del self[i1:i2].

Source

fn count<V>(&self, value: V) -> PyResult<usize>
where V: IntoPyObject<'py>,

Returns the number of occurrences of value in self, that is, return the number of keys for which self[key] == value.

Source

fn contains<V>(&self, value: V) -> PyResult<bool>
where V: IntoPyObject<'py>,

Determines if self contains value.

This is equivalent to the Python expression value in self.

Source

fn index<V>(&self, value: V) -> PyResult<usize>
where V: IntoPyObject<'py>,

Returns the first index i for which self[i] == value.

This is equivalent to the Python expression self.index(value).

Source

fn to_list(&self) -> PyResult<Bound<'py, PyList>>

Returns a fresh list based on the Sequence.

Source

fn to_tuple(&self) -> PyResult<Bound<'py, PyTuple>>

Returns a fresh tuple based on the Sequence.

Dyn Compatibility§

This trait is not dyn compatible.

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

Implementors§

Source§

impl<'py> PySequenceMethods<'py> for Bound<'py, PySequence>