Trait underscore::btreemap::BTreeMapU [-] [+] [src]

pub trait BTreeMapU<K, V> {
    fn invert(self) -> BTreeMap<V, K>;
    fn pick(self, keys: &Vec<K>) -> BTreeMap<K, V>;
    fn pick_by_filter<F: Fn(&K, &V) -> bool>(self, f: F) -> BTreeMap<K, V>;
    fn omit(self, keys: &Vec<K>) -> BTreeMap<K, V>;
    fn omit_by_filter<F: Fn(&K, &V) -> bool>(self, f: F) -> BTreeMap<K, V>;
    fn defaults(self, appends: BTreeMap<K, V>) -> BTreeMap<K, V>;
    fn pairs<'a>(&'a self) -> Vec<(&'a K, &'a V)>;
}

BTreeMapU expands BTreeMap

Required Methods

fn invert(self) -> BTreeMap<V, K>

Returns a copy of the BTreeMap where the keys have become the values and the values the keys.

Example

use std::collections::BTreeMap;
use underscore::btreemap::BTreeMapU;

let mut sample = BTreeMap::new();
sample.insert(1isize, 1usize);
sample.insert(2isize, 2usize);

let inverted = sample.invert();
// => BTreeMap { 1usize: 1isize, 2usize: 2isize }

fn pick(self, keys: &Vec<K>) -> BTreeMap<K, V>

Return a copy of the BTreeMap, filtered to only have values for the whitelisted keys.

Example

use std::collections::BTreeMap;
use underscore::btreemap::BTreeMapU;

let mut sample = BTreeMap::new();
sample.insert(1isize, 1usize);
sample.insert(2isize, 2usize);

let picked = sample.pick(&vec!(1isize));
// => BTreeMap { 1isize: 1usize }

fn pick_by_filter<F: Fn(&K, &V) -> bool>(self, f: F) -> BTreeMap<K, V>

Return a copy of the BTreeMap, filtered to only have values for the vector whitelisted keys. pick_by_filter filters keys to pick by function.

Example

use std::collections::BTreeMap;
use underscore::btreemap::BTreeMapU;

#[allow(unused_variable)]
fn sample_filter(x: &isize, y: &usize) -> bool {
    if *x == 1 { return true; }
    return false;
}

let mut sample = BTreeMap::new();
sample.insert(1isize, 1usize);
sample.insert(2isize, 2usize);

let picked = sample.pick_by_filter(sample_filter);
// => BTreeMap { 1isize: 1usize }

fn omit(self, keys: &Vec<K>) -> BTreeMap<K, V>

Return a copy of the BTreeMap, filtered to omit the blacklisted keys (or array of keys). omit_by_filter filters keys to pick by function.

use std::collections::BTreeMap;
use underscore::btreemap::BTreeMapU;

let mut sample = BTreeMap::new();
sample.insert(1isize, 1usize);
sample.insert(2isize, 2usize);

let omitted = sample.omit(&vec!(1isize));
// => BTreeMap { 2isize: 2usize }

fn omit_by_filter<F: Fn(&K, &V) -> bool>(self, f: F) -> BTreeMap<K, V>

Return a copy of the BTreeMap, filtered to omit the blacklisted keys (or array of keys). omit_by_filter filters keys to pick by function.

Example

use std::collections::BTreeMap;
use underscore::btreemap::BTreeMapU;

#[allow(unused_variable)]
fn sample_filter(x: &isize, y: &usize) -> bool {
    if *x == 1 { return true; }
    return false;
}

let mut sample = BTreeMap::new();
sample.insert(1isize, 1usize);
sample.insert(2isize, 2usize);

let omitted = sample.omit_by_filter(sample_filter);
// => BTreeMap { 1usize: 1isize }

fn defaults(self, appends: BTreeMap<K, V>) -> BTreeMap<K, V>

Fill in undefined properties in BTreeMap with the first value present in the following list of defaults objects.

Example

use std::collections::BTreeMap;
use underscore::btreemap::BTreeMapU;

let mut origin = BTreeMap::new();
origin.insert(1isize, 1usize);
origin.insert(2isize, 2usize);

let mut appends = BTreeMap::new();
appends.insert(1isize, 10000usize);
appends.insert(3isize, 3usize);

let defaults = origin.defaults(appends);
// => BTreeMap { 1isize: 1usize, 2isize: 2usize, 3isize: 3usize }

fn pairs<'a>(&'a self) -> Vec<(&'a K, &'a V)>

Convert a BTreeMap into a vector of (key, value) tuple pairs.

Example

use std::collections::BTreeMap;
use underscore::btreemap::BTreeMapU;

let mut sample = BTreeMap::new();
sample.insert(1isize, 1usize);
sample.insert(2isize, 2usize);

let pairs = sample.pairs();
// => Vec<(1isize, 1usize), (2isize, 2usize)>

Implementors