🗂

0014-box-dyn-error

に公開

File::openのときとstd::env::varで発生するエラーの型が違うのでResultのエラーを静的に定義できない
そういった時にBox<dyn ...>にすることで、複数のエラーを処理できるようにコンパイルできる

use std::fs::File;
fn main() -> Result<(), Box<dyn std::error::Error>> {
    let _fd = File::open("./test.txt")?;
    let _env = std::env::var("RUST_BACKTRACE")?;
    Ok(())
}

Discussion