mona: Transform nested container types in Rust
Usage
The crate provides the .transpose() and .flatten() on nested container types.
.transpose() exchanges the inner and outer containers types. For example,
Vec<Vec<T>>->Option<Vec<Vec<T>>>Vec<HashMap<K, V>>->Option<HashMap<K, Vec<V>>>HashMap<K, Vec<V>>->HashMap<K, Vec<V>>Result<Result<T, E>, F>->Result<Result<T, F>, E>Option<Option<T>>->Option<Option<T>>
.flatten() merges the inner and outer container types. For example,
Vec<Vec<T>>->Vec<T>HashMap<K, HashMap<L, V>>->HashMap<(K, L), V>HashMap<K, Vec<V>>->HashMap<(K, usize), V>Vec<HashMap<K, V>>->HashMap<(usize, K), V>
This is an example usage of .transpose and .flatten().
use *;
let vec_of_vec = vec!;
assert_eq!;
assert_eq!;
License
MIT license. See LICENSE.txt.