mod add;
mod forget;
mod list;
mod rename;
mod root;
mod update_stale;
use clap::Subcommand;
use tracing::instrument;
use self::add::WorkspaceAddArgs;
use self::add::cmd_workspace_add;
use self::forget::WorkspaceForgetArgs;
use self::forget::cmd_workspace_forget;
use self::list::WorkspaceListArgs;
use self::list::cmd_workspace_list;
use self::rename::WorkspaceRenameArgs;
use self::rename::cmd_workspace_rename;
use self::root::WorkspaceRootArgs;
use self::root::cmd_workspace_root;
use self::update_stale::WorkspaceUpdateStaleArgs;
use self::update_stale::cmd_workspace_update_stale;
use crate::cli_util::CommandHelper;
use crate::command_error::CommandError;
use crate::ui::Ui;
#[derive(Subcommand, Clone, Debug)]
pub(crate) enum WorkspaceCommand {
Add(WorkspaceAddArgs),
Forget(WorkspaceForgetArgs),
List(WorkspaceListArgs),
Rename(WorkspaceRenameArgs),
Root(WorkspaceRootArgs),
UpdateStale(WorkspaceUpdateStaleArgs),
}
#[instrument(skip_all)]
pub(crate) async fn cmd_workspace(
ui: &mut Ui,
command: &CommandHelper,
subcommand: &WorkspaceCommand,
) -> Result<(), CommandError> {
match subcommand {
WorkspaceCommand::Add(args) => cmd_workspace_add(ui, command, args).await,
WorkspaceCommand::Forget(args) => cmd_workspace_forget(ui, command, args).await,
WorkspaceCommand::List(args) => cmd_workspace_list(ui, command, args).await,
WorkspaceCommand::Rename(args) => cmd_workspace_rename(ui, command, args).await,
WorkspaceCommand::Root(args) => cmd_workspace_root(ui, command, args).await,
WorkspaceCommand::UpdateStale(args) => cmd_workspace_update_stale(ui, command, args).await,
}
}