Skip to main content

solar_cli/commands/
mod.rs

1//! CLI command runners.
2
3use crate::args::{Args, Subcommands};
4use std::process::ExitCode;
5
6pub mod compile;
7pub(crate) mod evm_opt;
8#[cfg(feature = "lsp")]
9mod lsp;
10pub(crate) mod mir_opt;
11
12pub(crate) fn run(args: Args) -> ExitCode {
13    let Args { commands, compile } = args;
14    match commands {
15        #[cfg(feature = "lsp")]
16        Some(Subcommands::Lsp(args)) => lsp::run(args),
17        Some(Subcommands::MirOpt(args)) => mir_opt::run(args),
18        Some(Subcommands::EvmOpt(args)) => evm_opt::run(args),
19        None => compile::run(compile),
20    }
21}