Error handling 如何实现std::convert::From<;标准::错误::错误>;对于自定义错误?

Error handling 如何实现std::convert::From<;标准::错误::错误>;对于自定义错误?,error-handling,rust,Error Handling,Rust,我在一个从CSV文件读取的模块中实现了一个自定义错误类。由于读取文件时可能会发生不同的错误,因此我为代码中可能发生的所有类型的错误实现了std::convert::From。然而,鉴于我不需要任何关于错误本身的信息,我希望我可以从实现(或者使用更简化的方法) 这是实现自定义错误的代码: #[派生(调试)] 发布结构解析错误{ 善良的,善良的, 消息:String, } #[派生(Eq、PartialEq、散列、调试)] 发布枚举ParseErrorKind{ 未追踪, 跟踪错误1, 跟踪错误2,

我在一个从CSV文件读取的模块中实现了一个自定义错误类。由于读取文件时可能会发生不同的错误,因此我为代码中可能发生的所有类型的错误实现了
std::convert::From
。然而,鉴于我不需要任何关于错误本身的信息,我希望我可以从实现
(或者使用更简化的方法)

这是实现自定义错误的代码:

#[派生(调试)]
发布结构解析错误{
善良的,善良的,
消息:String,
}
#[派生(Eq、PartialEq、散列、调试)]
发布枚举ParseErrorKind{
未追踪,
跟踪错误1,
跟踪错误2,
跟踪箭头,
}
impl std::convert::From for ParseError{
fn from(错误:std::num::parseinteror)->Self{
解析错误{
种类:ParseErrorKind::未跟踪,
消息:错误。到_字符串(),
}
}
}
impl std::convert::From for ParseError{
fn from(错误:std::num::parseflooterror)->Self{
解析错误{
种类:ParseErrorKind::未跟踪,
消息:错误。到_字符串(),
}
}
}
它是在解析CSV记录的函数中生成的:

fn from_记录(rec:&HashMap)->结果{
好的(信息{
字段:rec[“column”]。解析::()?,
})
}
我使用加载程序函数中的错误来计算跟踪的错误:

//让错误计数:HashMap;
let info=匹配信息::来自记录(&R){
好的(i)=>i,
错误(e)=>{
*错误计数。条目(e.kind)。或插入(0)+=1;
继续;
}
};

有没有一种方法可以实现std::convert::From
,或者有其他简化的方法?

看看板条箱,它打算最终取代std错误管理机制。@Jmb失败已被弃用,不应推荐用于新项目。实现
std::convert::From
的方法-这不是一种格式良好的类型(至少不是您所指的方式)。见TL;复制品博士-不,没有。您必须执行
impl std::convert::From for ParseError
,但只要您有第二个
From
impl查看板条箱,就会发生冲突,它打算最终取代std错误管理机制。@Jmb失败已被弃用,不应推荐用于新项目。实现
std::convert::From
的方法-这不是一种格式良好的类型(至少不是您所指的方式)。见TL;复制品博士-不,没有。您必须执行
impl std::convert::From for ParseError
,但一旦您有第二个
From
impl