use anyhow::Result;
#[cfg(feature = "experimental")]
use cargo_risczero::BuildSubcommand;
use cargo_risczero::{Cargo, RisczeroCmd};
use clap::Parser;
use tracing_subscriber::EnvFilter;
fn main() -> Result<()> {
tracing_subscriber::fmt()
.with_env_filter(EnvFilter::from_default_env())
.init();
let Cargo::Risczero(args) = Cargo::parse();
match args.command {
RisczeroCmd::Build(cmd) => cmd.run(),
RisczeroCmd::BuildToolchain(cmd) => cmd.run(),
RisczeroCmd::Install(cmd) => cmd.run(),
RisczeroCmd::Datasheet(cmd) => cmd.run(),
RisczeroCmd::New(cmd) => cmd.run(),
RisczeroCmd::Deploy(cmd) => cmd.run(),
RisczeroCmd::Verify(cmd) => cmd.run(),
#[cfg(feature = "experimental")]
RisczeroCmd::BuildCrate(build) => build.run(BuildSubcommand::Build),
#[cfg(feature = "experimental")]
RisczeroCmd::Test(build) => build.run(BuildSubcommand::Test),
_ => unreachable!(),
}
}