pub struct PyIterator(/* private fields */);
Expand description
A Python iterator object.
Values of this type are accessed via PyO3’s smart pointers, e.g. as
Py<PyIterator>
or Bound<'py, PyIterator>
.
§Examples
use pyo3::prelude::*;
use pyo3::ffi::c_str;
Python::with_gil(|py| -> PyResult<()> {
let list = py.eval(c_str!("iter([1, 2, 3, 4])"), None, None)?;
let numbers: PyResult<Vec<usize>> = list
.try_iter()?
.map(|i| i.and_then(|i|i.extract::<usize>()))
.collect();
let sum: usize = numbers?.iter().sum();
assert_eq!(sum, 10);
Ok(())
})
Implementations§
Source§impl PyIterator
impl PyIterator
Sourcepub fn from_object<'py>(
obj: &Bound<'py, PyAny>,
) -> PyResult<Bound<'py, PyIterator>>
pub fn from_object<'py>( obj: &Bound<'py, PyAny>, ) -> PyResult<Bound<'py, PyIterator>>
Builds an iterator for an iterable Python object; the equivalent of calling iter(obj)
in Python.
Usually it is more convenient to write obj.iter()
,
which is a more concise way of calling this function.
Sourcepub fn from_bound_object<'py>(
obj: &Bound<'py, PyAny>,
) -> PyResult<Bound<'py, PyIterator>>
👎Deprecated since 0.23.0: renamed to PyIterator::from_object
pub fn from_bound_object<'py>( obj: &Bound<'py, PyAny>, ) -> PyResult<Bound<'py, PyIterator>>
PyIterator::from_object
Deprecated name for PyIterator::from_object
.
Trait Implementations§
Source§impl AsRef<PyAny> for PyIterator
impl AsRef<PyAny> for PyIterator
Source§impl Deref for PyIterator
impl Deref for PyIterator
Source§impl PyTypeCheck for PyIterator
impl PyTypeCheck for PyIterator
impl DerefToPyAny for PyIterator
Auto Trait Implementations§
impl !Freeze for PyIterator
impl !RefUnwindSafe for PyIterator
impl !Send for PyIterator
impl !Sync for PyIterator
impl Unpin for PyIterator
impl UnwindSafe for PyIterator
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more