pub mod cli;
pub mod cmd;
pub mod engine_flags;
pub mod load;
pub mod output;
pub mod value_parse;
#[cfg(feature = "wast")]
pub mod wast_runner;
use clap::CommandFactory;
use eyre::Result;
pub use cli::{Cli, Commands};
pub fn run_cli(cli: Cli) -> Result<()> {
match cli.command {
Some(Commands::Run(args)) => cmd::run::run(args),
Some(Commands::Compile(args)) => cmd::compile::run(args),
Some(Commands::Dump(args)) => cmd::dump::run(args),
Some(Commands::Inspect(args)) => cmd::inspect::run(args),
#[cfg(feature = "wast")]
Some(Commands::Wast(args)) => cmd::wast::run(args),
Some(Commands::Completion(args)) => cmd::completion::run(args),
None => match cli.run.module.as_deref() {
Some(_) => cmd::run::run(cli.run),
None => {
let mut cmd = Cli::command();
cmd.print_help()?;
println!();
Ok(())
}
},
}
}