dro*_*te7 4 error-handling rust
fmt::Error我想知道如何将, 轨道上可能出现的其他类型的临时错误正确转换fn fmt为该fmt::Error类型?
比方说:
use std::fmt;
use serde::{Serialize, Deserialize};
#[derive(Serialize, Deserialize)]
struct MyStruct {
x: i32
}
impl fmt::Display for MyStruct {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "{}", serde_json::to_string(&self).map_err(|e| /*???*/)?)
}
}
Run Code Online (Sandbox Code Playgroud)
如上面的示例所示,我想知道我应该如何转换,例如,serde_json::Error以fmt::Error符合返回的fmt::Result特征。
fmt::Error没有字段。它只是一个指示值,“不支持除了发生错误之外的错误传输”(文档)。因此,如果您愿意只返回错误而没有其他消息,则将错误映射到fmt::Error:
foo.map_err(|_| fmt::Error)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1035 次 |
| 最近记录: |