1 个不稳定版本
0.1.0 | 2021年5月30日 |
---|
#2149 in 算法
11KB
253 行
mona:在 Rust 中转换嵌套容器类型
用法
该包提供了对嵌套容器类型的 .transpose()
和 .flatten()
操作。
.transpose()
交换内部和外部容器的类型。例如,
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()
合并内层和外层容器类型。例如,
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>
这是 .transpose
和 .flatten()
的一个示例用法。
use mona::prelude::*;
let vec_of_vec = vec![vec![1, 2, 3], vec![4, 5, 6]];
assert_eq!(
vec_of_vec.clone().transpose(),
Some(vec![vec![1, 4], vec![2, 5], vec![3, 6]])
);
assert_eq!(vec_of_vec.flatten(), vec![1, 2, 3, 4, 5, 6]);
许可证
MIT 许可证。请参阅 LICENSE.txt。
依赖项
~425KB