Struct extendr_api::iter::EnvIter[][src]

pub struct EnvIter { /* fields omitted */ }

Iterator over the names and values of an environment

use extendr_api::prelude::*;
test! {
    let names_and_values = (0..100).map(|i| (format!("n{}", i), i));
    let env = Env{parent: global_env(), names_and_values};
    let robj = r!(env);
    let names_and_values = robj.as_env_iter().unwrap().collect::<Vec<_>>();
    assert_eq!(names_and_values.len(), 100);

    let small_env = new_env_with_capacity(1);
    small_env.set_local(sym!(x), 1);
    let names_and_values = small_env.as_env_iter().unwrap().collect::<Vec<_>>();
    assert_eq!(names_and_values, vec![("x", r!(1))]);

    let large_env = new_env_with_capacity(1000);
    large_env.set_local(sym!(x), 1);
    let names_and_values = large_env.as_env_iter().unwrap().collect::<Vec<_>>();
    assert_eq!(names_and_values, vec![("x", r!(1))]);
}

Trait Implementations

impl Clone for EnvIter[src]

impl Debug for EnvIter[src]

impl Iterator for EnvIter[src]

type Item = (&'static str, Robj)

The type of the elements being iterated over.

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<I> IntoIterator for I where
    I: Iterator
[src]

type Item = <I as Iterator>::Item

The type of the elements being iterated over.

type IntoIter = I

Which kind of iterator are we turning this into?

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.