pyo3::types::sequence

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>,

Available on non-PyPy only.

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

Implementors§

Source§

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

⚠️ Internal Docs ⚠️ Not Public API 👉 Official Docs Here