# #![allow(unused_variables)]
#fn main() {
extern crate failure;
#[macro_use] extern crate failure_derive;
use std::fmt
#[derive(Fail, Debug)]
struct MyError {
code: i32,
message: String,
}
impl fmt::Display for MyError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "An error occurred with error code {}. ({})", self.code, self.message)
}
}
#}
# #![allow(unused_variables)]
#fn main() {
extern crate failure;
#[macro_use] extern crate failure_derive;
#[derive(Fail, Debug)]
#[fail(display = "An error occurred with error code {}. ({})", code, message)]
struct MyError {
code: i32,
message: String,
}
#}
extern crate failure;
use std::fs;
fn main() -> Result<(), failure::Error> {
let contents = fs::read_to_string("file.txt");
println!("{}", contents?);
Ok(())
}
Error: Os { code: 2, kind: NotFound, message: "No such file or directory" }