pub trait UniqueCollection {
type Item;
// Required methods
fn unique_values(&self) -> Vec<Self::Item>;
fn n_unique_cutoff(&self, cutoff: usize) -> usize;
// Provided methods
fn n_unique(&self) -> usize { ... }
fn value_map(&self) -> BTreeMap<usize, Self::Item> { ... }
}Required Associated Types§
Required Methods§
Sourcefn unique_values(&self) -> Vec<Self::Item>
fn unique_values(&self) -> Vec<Self::Item>
Get the unique values in the collection
§Example
let xs: Vec<u8> = vec![0, 1, 2, 1, 0, 2, 1, 0, 4];
let values = xs.unique_values();
assert_eq!(values.len(), 4);
assert_eq!(values.len(), xs.n_unique());
assert!(xs.contains(&0));
assert!(xs.contains(&1));
assert!(xs.contains(&2));
assert!(xs.contains(&4));Sourcefn n_unique_cutoff(&self, cutoff: usize) -> usize
fn n_unique_cutoff(&self, cutoff: usize) -> usize
Get minimum of the number of unique values and the cutoff
§Example
let xs: Vec<u8> = vec![0, 1, 2, 1, 0, 2, 1, 0, 4];
assert_eq!(xs.n_unique_cutoff(4), 4);
assert_eq!(xs.n_unique_cutoff(10), 4);
assert_eq!(xs.n_unique_cutoff(3), 3);