Documentation
use std::{env, process};
use unit12;

//I/O项目:编写一个命令行程序
//输出信息分为标准输出(stdout)和标准错误(stderr)。println!宏只能用来打印到标准输出,eprintln!宏只能用来打印到标准错误。
//使用cargo run > ./output.txt命令,会在应用程序启动时并在指定目录下创建output.txt记录标准输出(stdout)信息,不会记录标准错误(stderr)信息。
fn main() {
    //std::env::args()用来获取应用程序启动参数,std::env::args().collect()将启动参数转换成动态数组(需要指明动态数组的类型)。
    //std::env::args().collect()获取到的启动参数第一个永远是项目名称。
    let args = env::args();
    let config = unit12::Config::new(args).unwrap_or_else(|err| {
        eprintln!("{}", err);
        process::exit(1);
    });
    unit12::run(config).unwrap_or_else(|err| {
        eprintln!("application error : {}", err);
        process::exit(1);
    })
}