use clap::{Args, Subcommand};
#[derive(Clone, Debug, Args)]
pub struct CheckpointArgs {
#[arg(short = 'm', long)]
pub message: Option<String>,
}
#[derive(Clone, Debug, Subcommand)]
pub enum TransactionCommands {
Begin(TransactionBeginArgs),
Commit(TransactionIdArgs),
Abort(TransactionAbortArgs),
Status(TransactionIdArgs),
}
#[derive(Clone, Debug, Args)]
pub struct TransactionBeginArgs {
#[arg(long)]
pub thread: Option<String>,
#[arg(long)]
pub message: Option<String>,
}
#[derive(Clone, Debug, Args)]
pub struct TransactionIdArgs {
pub transaction_id: String,
}
#[derive(Clone, Debug, Args)]
pub struct TransactionAbortArgs {
pub transaction_id: String,
#[arg(long, default_value = "user-requested abort")]
pub reason: String,
}
#[derive(Clone, Debug, Subcommand)]
pub enum ConflictCommands {
List,
Show(ConflictShowArgs),
}
#[derive(Clone, Debug, Args)]
pub struct ConflictShowArgs {
pub conflict_id: String,
}