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