#tuple #options #combinator #traits #helper #dealing

tuple-combinator

处理 Option 元组的便捷方法

4 个版本

0.2.1 2019 年 8 月 28 日
0.2.0 2019 年 8 月 21 日
0.1.1 2019 年 8 月 17 日
0.1.0 2019 年 8 月 16 日

#2844Rust 模式

Download history 15/week @ 2024-04-01

1,427 每月下载量

MIT 许可证

25KB
267 代码行

tuple-combinator

Build Status Crates.io docs.rs

此crate提供了一个帮助特质,实现了几个针对元组(最多10个元素元组)的便捷方法。直接为元组选项实现这些方法可以在同时处理许多选项时大大简化你的代码。

许可证

MIT


lib.rs:

一个帮助特质,用于提高处理多个 Option 的效率。导入 TupleCombinator 后,你可以将一个选项元组视为一个 Option

示例

use tuple_combinator::TupleCombinator;

fn main() {
    let tuples = (Some(1), Some(2), Some(3));

    assert_eq!(tuples.map(|(a,b,c)| a + b + c), Some(6));
    assert_eq!(tuples.and_then(|(a,b,c)| Some(a + b - c)), Some(0));
    assert_eq!(tuples.transpose(), Some((1,2,3)));
    assert_eq!((Some(1), None).map(|(a, b): (i32, i32)| 100), None);
}

无运行时依赖