Trait iter_columns::prelude::ColumnsIntoIterVecTrait[][src]

pub trait ColumnsIntoIterVecTrait<T>: Iterator<Item = Vec<T>> {
    fn columns(self) -> ColumnsIntoIterVec<T>
    where
        Self: Sized
, { ... }
fn columns_options(self) -> ColumnsOptionsIntoIterVec<T>
    where
        Self: Sized
, { ... } }

Provided methods

Iterate over the columns.

Examples

Basic usage:

use iter_columns::prelude::*;

let v = vec![
    vec![1, 2, 3],
    vec![4, 5, 6],
];
let mut col_iter = v.into_iter().columns();

assert_eq!(Some(vec![1, 4]), col_iter.next());
assert_eq!(Some(vec![2, 5]), col_iter.next());
assert_eq!(Some(vec![3, 6]), col_iter.next());
assert_eq!(None, col_iter.next());

Iterate over the columns with the cells wrapped in Options.

Might be useful, if you have an inconsistent column length.

Examples

Basic usage:

use iter_columns::prelude::*;

let v = vec![
    vec![1, 2],
    vec![4, 5, 6],
];
let mut col_iter = v.into_iter().columns_options();

assert_eq!(Some(vec![Some(1), Some(4)]), col_iter.next());
assert_eq!(Some(vec![Some(2), Some(5)]), col_iter.next());
assert_eq!(Some(vec![None, Some(6)]), col_iter.next());
assert_eq!(None, col_iter.next());

Implementors