use crate::error::Result;
use async_trait::async_trait;
use clap::Args;
#[derive(Debug, Clone, Args)]
pub struct SessionCommand {
#[command(subcommand)]
pub action: SessionAction,
}
#[derive(Debug, Clone, clap::Subcommand)]
pub enum SessionAction {
List,
Stats,
Create { name: String },
}
#[async_trait]
impl super::Command for SessionCommand {
async fn execute(self) -> Result<()> {
match self.action {
SessionAction::List => {
tracing::info!("Listing sessions");
}
SessionAction::Stats => {
tracing::info!("Showing session statistics");
}
SessionAction::Create { name } => {
tracing::info!("Creating session: {}", name);
}
}
Ok(())
}
}