Skip to main content

PositionIterInternal

Struct PositionIterInternal 

Source
pub struct PositionIterInternal<T> {
    pub status: IterStatus<T>,
    pub position: usize,
}

Fields§

§status: IterStatus<T>§position: usize

Implementations§

Source§

impl<T> PositionIterInternal<T>

Source

pub const fn new(obj: T, position: usize) -> Self

Source

pub fn set_state<F>( &mut self, state: PyObjectRef, f: F, vm: &VirtualMachine, ) -> PyResult<()>
where F: FnOnce(&T, usize) -> usize,

Source

pub fn reduce<F, E>( &self, func: PyObjectRef, active: F, empty: E, vm: &VirtualMachine, ) -> PyTupleRef

Build a pickle-compatible reduce tuple.

func must be resolved before acquiring any lock that guards this PositionIterInternal, so that the builtins lookup cannot trigger reentrant iterator access and deadlock.

Source

pub fn next<F>(&mut self, f: F) -> PyResult<PyIterReturn>

Source

pub fn rev_next<F>(&mut self, f: F) -> PyResult<PyIterReturn>

Source

pub fn length_hint<F>(&self, f: F) -> usize
where F: FnOnce(&T) -> usize,

Source

pub fn rev_length_hint<F>(&self, f: F) -> usize
where F: FnOnce(&T) -> usize,

Trait Implementations§

Source§

impl<T: Debug> Debug for PositionIterInternal<T>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<T: Traverse> Traverse for PositionIterInternal<T>

Source§

fn traverse(&self, tracer_fn: &mut TraverseFn<'_>)

impl traverse() with caution! Following those guideline so traverse doesn’t cause memory error!: Read more
Source§

fn clear(&mut self, _out: &mut Vec<PyObjectRef>)

Extract all owned child PyObjectRefs for circular reference resolution (tp_clear). Called just before object deallocation to break circular references. Default implementation does nothing.

Auto Trait Implementations§

§

impl<T> Freeze for PositionIterInternal<T>
where T: Freeze,

§

impl<T> RefUnwindSafe for PositionIterInternal<T>
where T: RefUnwindSafe,

§

impl<T> Send for PositionIterInternal<T>
where T: Send,

§

impl<T> Sync for PositionIterInternal<T>
where T: Sync,

§

impl<T> Unpin for PositionIterInternal<T>
where T: Unpin,

§

impl<T> UnsafeUnpin for PositionIterInternal<T>
where T: UnsafeUnpin,

§

impl<T> UnwindSafe for PositionIterInternal<T>
where T: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T, U> ExactFrom<T> for U
where U: TryFrom<T>,

Source§

fn exact_from(value: T) -> U

Source§

impl<T, U> ExactInto<U> for T
where U: ExactFrom<T>,

Source§

fn exact_into(self) -> U

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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
Source§

impl<T, U> OverflowingInto<U> for T
where U: OverflowingFrom<T>,

Source§

impl<T, U> RoundingInto<U> for T
where U: RoundingFrom<T>,

Source§

impl<T, U> SaturatingInto<U> for T
where U: SaturatingFrom<T>,

Source§

impl<T> ToDebugString for T
where T: Debug,

Source§

fn to_debug_string(&self) -> String

Returns the String produced by Ts Debug implementation.

§Examples
use malachite_base::strings::ToDebugString;

assert_eq!([1, 2, 3].to_debug_string(), "[1, 2, 3]");
assert_eq!(
    [vec![2, 3], vec![], vec![4]].to_debug_string(),
    "[[2, 3], [], [4]]"
);
assert_eq!(Some(5).to_debug_string(), "Some(5)");
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T, U> WrappingInto<U> for T
where U: WrappingFrom<T>,

Source§

fn wrapping_into(self) -> U

Source§

impl<T> PyThreadingConstraint for T