Trait iter_fixed::IntoIteratorFixed[][src]

pub unsafe trait IntoIteratorFixed<I: Iterator, const N: usize> {
    fn into_iter_fixed(self) -> IteratorFixed<I, N>;
}

Conversion into an IteratorFixed.

By implementing IntoIteratorFixed for a type, you define how it will be converted to an iterator of fixed size.

See also: crate::FromIteratorFixed.

Safety

Implementer has to guarantee that the inner iterator will always yield exactly N elements

Required methods

fn into_iter_fixed(self) -> IteratorFixed<I, N>[src]

Creates a fixed size iterator from a value.

Basic usage:

use iter_fixed::IntoIteratorFixed;

let two_four_six = [1, 2, 3].into_iter_fixed().map(|x| 2 * x);

let a: [i32; 3] = two_four_six.collect();
assert_eq!(a, [2, 4, 6]);
Loading content...

Implementations on Foreign Types

impl<T: Clone, const N: usize> IntoIteratorFixed<Take<Repeat<T>>, N> for Repeat<T>[src]

fn into_iter_fixed(self) -> IteratorFixed<Take<Repeat<T>>, N>[src]

Creates a fixed size iterator from an core::iter::Repeat

Basic usage:

use core::iter;
use iter_fixed::IntoIteratorFixed;

let one_one_one = iter::repeat(1).into_iter_fixed();

let a: [i32; 3] = one_one_one.collect();
assert_eq!(a, [1, 1, 1]);
Loading content...

Implementors

impl<'a, T, const N: usize> IntoIteratorFixed<Iter<'a, T>, N> for &'a [T; N][src]

fn into_iter_fixed(self) -> IteratorFixed<Iter<'a, T>, N>[src]

Creates a fixed size iterator from a borrowed array.

Basic usage:

use iter_fixed::IntoIteratorFixed;

let two_four_six = [1, 2, 3].into_iter_fixed().map(|x| 2 * x);

let a: [i32; 3] = two_four_six.collect();
assert_eq!(a, [2, 4, 6]);

impl<I: Iterator, const N: usize> IntoIteratorFixed<I, N> for IteratorFixed<I, N> where
    IteratorFixed<I, N>: IntoIterator
[src]

fn into_iter_fixed(self) -> IteratorFixed<I, N>[src]

IteratorFixed implements IntoIteratorFixed as a no op. This allows passing an IteratorFixed where an IntoIteratorFixed was expected

Basic usage with zip which expects an IntoIteratorFixed as its argument:

use iter_fixed::IntoIteratorFixed;
let one_one = [1, 1].into_iter_fixed();
let zipped: [_; 2] = [1, 2].into_iter_fixed().zip(one_one).collect();

assert_eq!(zipped, [(1, 1), (2, 1)]);

impl<T, const N: usize> IntoIteratorFixed<IntoIter<T, N>, N> for [T; N][src]

fn into_iter_fixed(self) -> IteratorFixed<IntoIter<T, N>, N>[src]

Creates a fixed size iterator from an array.

Basic usage:

use iter_fixed::IntoIteratorFixed;

let two_four_six = [1, 2, 3].into_iter_fixed().map(|x| 2 * x);

let a: [i32; 3] = two_four_six.collect();
assert_eq!(a, [2, 4, 6]);
Loading content...