定义可以在Rust中返回多种错误类型的函数

时间:2020-10-01 14:51:47

标签: rust

我有一个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>> {

0 个答案:

没有答案