我有一个main()
函数,该函数返回Result()
。在此函数中,我正在运行其他可能返回不同错误类型的函数。定义所有错误类型的最佳方法是什么?
请考虑以下示例:
#[derive(Debug)]
enum Error {
CustomError
}
fn can_raise_custom_error() -> Result<(), Error> {
Ok(())
}
fn can_raise_io_error() -> Result<(), std::io::Error> {
Ok(())
}
fn main() -> Result<(), ???> {
let _ = can_raise_custom_error()?;
let _ = can_raise_io_error()?;
Ok(())
}
我唯一想到的是在枚举中定义io::Error
并使用match
表达式将std::io::Error
更改为Error:IoError
。
有什么更好的办法吗?我希望能结合一些特征,但这是行不通的:
fn main() -> Result<(), <Error + std::io::Error>> {