use std::fmt::Debug;
use std::path::PathBuf;
use clap::{Args, Subcommand};
mod create;
mod delete;
mod kill;
mod start;
mod state;
pub use create::Create;
pub use delete::Delete;
pub use kill::Kill;
pub use start::Start;
pub use state::State;
mod checkpoint;
mod events;
mod exec;
mod features;
mod list;
mod pause;
mod ps;
mod resume;
mod run;
mod spec;
mod update;
pub use checkpoint::Checkpoint;
pub use events::Events;
pub use exec::Exec;
pub use features::Features;
pub use list::List;
pub use pause::Pause;
pub use ps::Ps;
pub use resume::Resume;
pub use run::Run;
pub use spec::Spec;
pub use update::Update;
#[derive(Subcommand, Debug)]
pub enum StandardCmd {
Create(Create),
Start(Start),
State(State),
Kill(Kill),
Delete(Delete),
}
#[derive(Subcommand, Debug)]
pub enum CommonCmd {
Checkpointt(Checkpoint),
Events(Events),
Exec(Exec),
Features(Features),
List(List),
Pause(Pause),
Ps(Ps),
Resume(Resume),
Run(Run),
Update(Update),
Spec(Spec),
}
#[derive(Args, Debug)]
pub struct GlobalOpts {
#[arg(short, long, overrides_with("log"))]
pub log: Option<PathBuf>,
#[arg(long)]
pub debug: bool,
#[arg(long)]
pub log_format: Option<String>,
#[arg(short, long)]
pub root: Option<PathBuf>,
#[arg(short, long)]
pub systemd_cgroup: bool,
}