schwab_cli/mode.rs
1use clap::ValueEnum;
2use serde::{Deserialize, Serialize};
3
4#[derive(Debug, Clone, Copy, Default, ValueEnum, Serialize, Deserialize, PartialEq, Eq)]
5#[value(rename_all = "kebab-case")]
6pub enum CliMode {
7 #[default]
8 Agent,
9 Human,
10}
11
12impl CliMode {
13 pub fn as_str(self) -> &'static str {
14 match self {
15 Self::Agent => "agent",
16 Self::Human => "human",
17 }
18 }
19
20 pub fn is_human(self) -> bool {
21 matches!(self, Self::Human)
22 }
23}