1pub(crate) use crate::util::open_path;
2use crate::{Format, Runnable};
3use anyhow::Result;
4use clap::Parser;
5
6mod cancel;
7mod filters;
8mod pause;
9mod resume;
10mod start;
11mod status;
12
13pub use self::{cancel::*, pause::*, resume::*, start::*, status::*};
14
15#[derive(Parser, Debug)]
22#[allow(clippy::doc_markdown)]
23pub struct BalanceCommand {
24 #[clap(subcommand)]
25 pub subcommand: BalanceSubcommand,
26}
27
28impl Runnable for BalanceCommand {
29 fn run(&self, format: Format, dry_run: bool) -> Result<()> {
30 match &self.subcommand {
31 BalanceSubcommand::Start(cmd) => cmd.run(format, dry_run),
32 BalanceSubcommand::Pause(cmd) => cmd.run(format, dry_run),
33 BalanceSubcommand::Cancel(cmd) => cmd.run(format, dry_run),
34 BalanceSubcommand::Resume(cmd) => cmd.run(format, dry_run),
35 BalanceSubcommand::Status(cmd) => cmd.run(format, dry_run),
36 }
37 }
38}
39
40#[derive(Parser, Debug)]
41pub enum BalanceSubcommand {
42 Start(BalanceStartCommand),
43 Pause(BalancePauseCommand),
44 Cancel(BalanceCancelCommand),
45 Resume(BalanceResumeCommand),
46 Status(BalanceStatusCommand),
47}