runmat 0.4.5

High-performance MATLAB/Octave syntax mathematical runtime
Documentation
use clap::{CommandFactory, FromArgMatches};
use std::process::ExitCode;

#[tokio::main]
async fn main() -> ExitCode {
    let matches = runmat::Cli::command().get_matches();
    let cli = match runmat::Cli::from_arg_matches(&matches) {
        Ok(cli) => cli,
        Err(err) => {
            eprintln!("Error: {err}");
            return ExitCode::from(1);
        }
    };
    let sources = runmat::CliOverrideSources::from_matches(&matches);
    match runmat::run_cli(cli, sources).await {
        Ok(()) => ExitCode::SUCCESS,
        Err(err) => {
            if err
                .downcast_ref::<runmat::AlreadyReportedCliError>()
                .is_none()
            {
                eprintln!("Error: {err}");
            }
            ExitCode::from(1)
        }
    }
}