Skip to main content

AirLibrary/CLI/
CommandTypes.rs

1#![allow(unused_variables, dead_code, unused_imports)]
2
3//! CLI command enum hierarchy for the Air daemon CLI.
4//!
5//! `Command` is the top-level dispatch value produced by `CliParser::parse`.
6//! Sub-enums (`ConfigCommand`, `DebugCommand`) scope arguments to logical
7//! domains. Auxiliary enums (`DiagnosticLevel`, `ValidationResult`,
8//! `PermissionLevel`) are referenced by parser and handler logic.
9
10/// Top-level CLI command.
11#[derive(Debug, Clone)]
12pub enum Command {
13	Status { service:Option<String>, verbose:bool, json:bool },
14	Restart { service:Option<String>, force:bool },
15	Config(ConfigCommand),
16	Metrics { json:bool, service:Option<String> },
17	Logs { service:Option<String>, tail:Option<usize>, filter:Option<String>, follow:bool },
18	Debug(DebugCommand),
19	Help { command:Option<String> },
20	Version,
21}
22
23/// Configuration management sub-commands.
24#[derive(Debug, Clone)]
25pub enum ConfigCommand {
26	Get { key:String },
27	Set { key:String, value:String },
28	Reload { validate:bool },
29	Show { json:bool },
30	Validate { path:Option<String> },
31}
32
33/// Debug and diagnostic sub-commands.
34#[derive(Debug, Clone)]
35pub enum DebugCommand {
36	DumpState { service:Option<String>, json:bool },
37	DumpConnections { format:Option<String> },
38	HealthCheck { verbose:bool, service:Option<String> },
39	Diagnostics { level:DiagnosticLevel },
40}
41
42/// Verbosity level for diagnostic operations.
43#[derive(Debug, Clone, Copy, PartialEq, Eq)]
44pub enum DiagnosticLevel {
45	Basic,
46	Extended,
47	Full,
48}
49
50/// Result of argument validation for a parsed command.
51#[derive(Debug, Clone)]
52pub enum ValidationResult {
53	Valid,
54	Invalid(String),
55}
56
57/// Minimum privilege required to execute a command.
58#[derive(Debug, Clone, Copy, PartialEq, Eq)]
59pub enum PermissionLevel {
60	User,
61	Admin,
62}