Trait underscore::hashmap::HashMapU [-] [+] [src]

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

UnderscoreHashMap expands HashMap

Required Methods

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

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

Example

use std::collections::HashMap;
use underscore::hashmap::HashMapU;

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

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

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

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

Example

use std::collections::HashMap;
use underscore::hashmap::HashMapU;

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

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

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

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

Example

use std::collections::HashMap;
use underscore::hashmap::HashMapU;

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

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

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

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

Return a copy of the hashmap, filtered to omit the blacklisted keys (or array of keys).

Example

use std::collections::HashMap;
use underscore::hashmap::HashMapU;

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

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

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

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

Example

use std::collections::HashMap;
use underscore::hashmap::HashMapU;

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

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

let inverted = sample.omit_by_filter(sample_filter);
// => HashMap { 2usize: 2isize }

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

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

Example

use std::collections::HashMap;
use underscore::hashmap::HashMapU;

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

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

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

Implementors