Struct IterTree

Source
pub struct IterTree {
    pub variants: Vec<IterNode>,
    pub id: u8,
    pub span: Span,
}
Expand description

Represents complicated iterator structures.

Fields§

§variants: Vec<IterNode>

The variants of the top-level iterator.

§id: u8

The id of the top-level iterator.

§span: Span

The span of the top-level iterator.

Implementations§

Source§

impl IterTree

Source

pub fn get_iter_lengths( &self, lengths: &mut HashMap<u8, (usize, Span, Option<Span>)>, full_span: Span, ) -> Result<(), Error>

Collect lengths of each iterator mapped to the iterators’ ids.

§Errors

Returns an error when there is an inconsistency in among iterators (same id, different lengths) or when an iterator with id x contains an iterator with id x.

Trait Implementations§

Source§

impl Debug for IterTree

Source§

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

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

impl From<&ExplicitIterator> for IterTree

Source§

fn from(value: &ExplicitIterator) -> Self

Converts to this type from the input type.
Source§

impl<const ITER: bool> From<&ImplicitIterator<ITER>> for IterTree

Source§

fn from(value: &ImplicitIterator<ITER>) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

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> Convert for T

Source§

fn convert<U>(self, context: &CompileContext) -> Expr<U>
where U: ConvertFrom<T>,

Convert self into a specific type. Read more
Source§

fn can_convert<U>(&self) -> bool
where U: ConvertFrom<T>,

Check if self can be converted into a specific type. Read more
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, 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.