use std::env;
use std::fs::File;
use std::io::Error;
use std::io::prelude::*;

fn read_file(filename: &str) -> Result<String, Error> {
    match File::open(filename) {
        Ok(mut file) => {
            let mut contents = String::new();
            match file.read_to_string(&mut contents) {
                Ok(_) => Ok(contents),
                Err(e) => Err(e),
            }
        },
        Err(e) => Err(e),
    }
}

fn main() {
    let args: Vec<String> = env::args().collect();
    if args.len() < 2 {
        eprintln!("ファイル名を指定してください。");
        return;
    }
    let filename = &args[1];
    match read_file(filename) {
        Ok(s) => println!("{s}"),
        Err(e) => println!("エラーが起きています：{e}"),
    };
}
