Trait iter_columns::prelude::ColumnsTrait[][src]

pub trait ColumnsTrait<'a, T: 'a, C: SliceHelper<T> + ?Sized + 'a>: Iterator<Item = &'a C> {
    fn columns(self) -> Columns<'a, T, C>
    where
        Self: Sized
, { ... }
fn columns_options(self) -> ColumnsOptions<'a, T, C>
    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.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.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