#zip #result #functional #utils #options

no-std storage_zip

将 Options 和 Results 压缩成元组的实用函数库

2 个版本

0.1.1 2019年12月22日
0.1.0 2019年12月22日

#249 in 无标准库

Download history 36/week @ 2024-03-21 21/week @ 2024-03-28 5/week @ 2024-04-04 60/week @ 2024-05-16 112/week @ 2024-05-23 20/week @ 2024-05-30 97/week @ 2024-06-06 10/week @ 2024-06-13 19/week @ 2024-06-20 31/week @ 2024-06-27 16/week @ 2024-07-04

114 每月下载量

MIT/Apache

9KB
117 代码行

Crates.io Documentation

storage_zip

此 crate 提供将 Options 和 Results 压缩成元组的实用函数。

当不同的操作产生 Options 或 Results 值,但程序流程只能在它们都为 Some 或 Ok 时继续时使用。当与 Result 一起使用时,它要求所有要压缩的 Results 都具有相同的错误类型,并将评估为第一个错误或包含所有 Ok 值的元组。

使用此 crate 可以做

use storage_zip::OptionZip;

let option_value_one = Some(0);
let option_value_two = Some(5);

let zipped_options = Option::zip(option_value_one, option_value_two);
assert_eq!(zipped_options, Some((0, 5)));

该 crate 还提供了具有更多参数的 zip 函数

use storage_zip::ResultZip;
use std::fs::File;
use std::io;

let f1 = File::open("file1");
let f2 = File::open("file2");
let f3 = File::open("file3");

let zipped_result: Result<(File, File, File), io::Error> = Result::zip3(f1, f2, f3);

许可

在以下任一许可下发布:

任选其一。

贡献

除非你明确声明,否则你提交的任何贡献,根据 Apache-2.0 许可证定义,均应按上述方式双许可,不附加任何额外条款或条件。

无运行时依赖