2个版本
0.0.1 | 2023年12月6日 |
---|---|
0.0.0 | 2023年12月6日 |
#48 在 #unwrap
在 2 个crate中使用
7KB
unwrap_display
类似于Result的unwrap,但使用core::fmt::Display
特质来格式化,而不是使用core::fmt::Debug
.
此crate对于测试非常有用,因此我建议将其添加到dev-dependencies
部分,而不是Cargo.toml
文件的dependencies
部分。
[dev-dependencies]
unwrap_display = "0.0"
lib.rs
:
当发生错误时,core::result::Result::unwrap
使用core::fmt::Debug
而不是core::fmt::Display
特质来打印错误。这没关系,因为unwrap的结果本来就不应该让最终用户看到。
有些错误类型在使用Debug
而不是Display
格式化时对开发者来说也是难以理解的。在这种情况下,使用Display
格式化错误可以提高生产效率。一个典型的用例是unittests内部的解析器错误。
此crate向core::result::Result
添加了unwrap_display
和expect_display_code
方法。两者都使用#[track_caller]
属性来简化调试。
现在您可以在测试中写入 do_something_interesting().unwrap_display()
,错误将以 Display
格式显示,而不是 Debug.