#unwrap #options #panic #stupid #revolutionary

try-unwrap

一款革命性的新库,允许您在不让您的愚蠢软件崩溃的情况下调用 unwrap()

2 个版本 (1 个稳定版本)

1.0.0 2023 年 11 月 5 日
0.1.0 2023 年 11 月 5 日

#1751Rust 模式

MIT 许可证

5KB

try-unwrap

一款革命性的新库,允许您在不让您的愚蠢软件崩溃的情况下调用 unwrap()。

您是否曾希望“天哪,我多么希望我可以在任何地方使用 unwrap() 而不使我的代码崩溃”?我们正好有这个答案!这个革命性的库向 ResultOption 类型添加了 try_unwrap,允许您安全地调用 unwrap

它是如何工作的?实际上非常简单。如果您的类型是 Ok,则 try-unwrap 将成功调用 unwrap 并返回该类型。如果结果是 Err,则它将解包错误并为您返回该错误!而且不用担心类型严格性:我们返回一个支持 OkErrResult 值!

示例

无论您的类型是 Result 还是 Option,使用 try-unwrap 非常简单!

let ok: Result<i32, ()> = Ok(3);
assert_eq!(ok.try_unwrap(), Ok(3));

let err: Result<(), i32> = Err(2);
assert_eq!(err.try_unwrap(), Err(2));
let some: Option<i32> = Some(4);
assert_eq!(some.try_unwrap(), Some(4));

let none: Option<i32> = None;
assert_eq!(none.try_unwrap(), None);

等等,什么?

我们知道!没有人想到这一点真是太疯狂了。但不用担心了,因为我们做到了。

这难道不是毫无用处吗?

什么?当然不是!

你是怎么做到的?

您所有燃烧的问题答案都在这里:https://hackerbirds.neocities.org/try-unwrap/

无运行时依赖