Skip to main content

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}