vcc 0.0.2

Valkyrie Compiler Collection
Documentation
use clap::{Parser, Subcommand};
use nyar_error::NyarError;
use crate::{BuildCommand, RunCommand};

pub mod run;
pub mod build;
pub mod test;
pub mod publish;

#[derive(Parser)]
#[command(author, version, about, long_about = None)]
pub struct Valor {
    #[clap(subcommand)]
    command: ValorCommands,
}

#[derive(Subcommand)]
pub enum ValorCommands {
    #[clap(name = "build")]
    Build(BuildCommand),
    #[clap(name = "run")]
    Run(RunCommand),
}


impl Valor {
    pub fn run(&self) -> Result<(), NyarError> {
        match &self.command {
            ValorCommands::Build(cmd) => {
                cmd.run()
            }
            ValorCommands::Run(cmd) => {
                cmd.run()
            }
        }

    }
}