#map #macro #error-handling

macro-map

无闭包的 Result::map_errOption::ok_or_else

2 个不稳定版本

0.2.0 2023 年 1 月 1 日
0.1.0 2023 年 1 月 1 日

#2993Rust 模式

Download history • Rust 包仓库 4/week @ 2024-03-15 • Rust 包仓库 38/week @ 2024-03-22 • Rust 包仓库 51/week @ 2024-03-29 • Rust 包仓库 66/week @ 2024-04-05 • Rust 包仓库 95/week @ 2024-04-12 • Rust 包仓库 29/week @ 2024-04-19 • Rust 包仓库 32/week @ 2024-04-26 • Rust 包仓库 6/week @ 2024-05-03 • Rust 包仓库 51/week @ 2024-05-10 • Rust 包仓库 15/week @ 2024-05-17 • Rust 包仓库 8/week @ 2024-05-24 • Rust 包仓库 21/week @ 2024-05-31 • Rust 包仓库 16/week @ 2024-06-07 • Rust 包仓库 25/week @ 2024-06-14 • Rust 包仓库 44/week @ 2024-06-21 • Rust 包仓库 6/week @ 2024-06-28 • Rust 包仓库

每月 98 次下载

MIT 许可证

7KB
65

macro-map


lib.rs:

这是一个小巧的工具集,使用宏来代替函数调用回调,实现了 Option::ok_or_elseResult::map_err

这减少了当你不能使用上述函数时(因为你需要的错误处理逻辑需要将某些值移动到闭包中,而你无法承担这样的开销),所需的样板代码。

人们通常会通过 .clone()-ing 要传递到闭包中的值来解决这个问题,但这很糟糕,因为

  • 你需要 .clone() 项,而这并不总是可能的;
  • .clone() 实际上并不必要,你可以使用手动 match 重写代码,而不需要所有权转移。

但是写一个 match 语句很啰嗦,谁会想要那样呢?!这正是这个 crate 出现的地方。

为了获得最佳的外观和感觉,请与 postfix-macros crate 结合使用。

无运行时依赖