mod external;
mod perf;
mod random;
use crate::Result;
pub use external::ExternalDataCommandArgs;
pub use jormungandr_lib::interfaces::Initial;
pub use perf::PerfDataCommandArgs;
pub use random::{
AllRandomDataCommandArgs, RandomReviewsDataCommandArgs, RandomScoresDataCommandArgs,
};
use clap::Parser;
#[derive(Parser, Debug)]
pub enum DataCommandArgs {
Import(ExternalDataCommandArgs),
#[clap(subcommand)]
Random(RandomDataCommandArgs),
Perf(PerfDataCommandArgs),
}
impl DataCommandArgs {
pub fn exec(self) -> Result<()> {
match self {
Self::Import(import_command) => import_command.exec(),
Self::Random(random_command) => random_command.exec(),
Self::Perf(perf_command) => perf_command.exec(),
}
}
}
#[derive(Parser, Debug)]
pub enum RandomDataCommandArgs {
All(AllRandomDataCommandArgs),
Reviews(RandomReviewsDataCommandArgs),
Scores(RandomScoresDataCommandArgs),
}
impl RandomDataCommandArgs {
pub fn exec(self) -> Result<()> {
match self {
Self::All(all_data_command) => all_data_command.exec(),
Self::Reviews(reviews_random_command) => reviews_random_command.exec(),
Self::Scores(scores_random_command) => scores_random_command.exec(),
}
}
}