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());
fn columns_options(self) -> ColumnsOptions<'a, T, C> where
Self: Sized,
fn columns_options(self) -> ColumnsOptions<'a, T, C> where
Self: Sized,
Iterate over the columns with the cells wrapped in Option
s.
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
impl<'a, T: 'a, C: SliceHelper<T> + ?Sized + 'a, I: Iterator<Item = &'a C>> ColumnsTrait<'a, T, C> for I