summaryrefslogblamecommitdiff
path: root/rust-book/errors/src/main.rs
blob: 12506774ec87689bab1e4a0122eb22a87d73b0b0 (plain) (tree)





































                                                                         
use std::io;
use std::io::Read;
use std::fs::File;
//use std::io::ErrorKind;

fn read_username_from_file() -> Result<String, io::Error> {
//    let f = File::open("hello.txt");
//    let mut f = match f {
//        Ok(file) => file,
//        Err(e) => return Err(e),
//    };
//    let mut s = String::new();
//    match f.read_to_string(&mut s) {
//        Ok(_) => Ok(s),
//        Err(e) => Err(e),
//    }
    let mut s = String::new();
    File::open("hello.txt")?.read_to_string(&mut s)?;
    Ok(s)
}
fn main() {
//    let f = File::open("hello.txt").map_err(|error| {
//        if error.kind() == ErrorKind::NotFound {
//            File::create("hello.txt").unwrap_or_else(|error| {
//                panic!("Could not create file: {:?}", error);
//            })
//        }
//        else {
//            panic!("Problem opening file: {:?}", error);
//        }
//    });
    
    //let f = File::open("hello.txt").unwrap();

    //let f = File::open("hello.txt").expect("failed to open hello.txt");

    dbg!(read_username_from_file());
}