[][src]Struct subset::Subset

pub struct Subset<'a, T> { /* fields omitted */ }

A very simple subset of vector's items that is able to iterate forward and backward over selected items.

Examples

Basic usage:

use subset::*;
 
let set = vec![9, 8, 7, 6, 5, 4, 3, 2, 1, 0];
let idxs = vec![2, 2];
assert_eq!(Subset::new(&set, &idxs).err(), Some(IndexError::NotUnique));
let idxs = vec![10];
assert_eq!(Subset::new(&set, &idxs).err(), Some(IndexError::OutOfBounds));
let idxs = vec![2, 4, 7];   // Indexes of selected items
let subset = Subset::new(&set, &idxs).unwrap();
let mut iter = subset.iter();
 
assert_eq!(Some(&7), iter.next());
assert_eq!(Some(&2), iter.next_back());
assert_eq!(Some(&5), iter.next_back());
assert_eq!(None, iter.next());
assert_eq!(None, iter.next_back());

Methods

impl<'a, T> Subset<'a, T>[src]

pub fn new(set: &'a Vec<T>, idxs: &'a Vec<usize>) -> Result<Self, IndexError>[src]

Creates a subset from the whole set and indexes of the selected items. Both the uniqueness of the selected items and the array bounds is checked.

pub unsafe fn new_unchecked(set: &'a Vec<T>, idxs: &'a Vec<usize>) -> Self[src]

Creates a subset from the whole set and indexes of the selected items. Neither the uniqueness of the selected items, nor the array bounds is checked.

Important traits for SubsetIterator<'a, T>
pub fn iter(&'a self) -> SubsetIterator<'a, T>[src]

Returns an iterator over subset.

Auto Trait Implementations

impl<'a, T> Send for Subset<'a, T> where
    T: Sync

impl<'a, T> Sync for Subset<'a, T> where
    T: Sync

Blanket Implementations

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

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

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.

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

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

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