pkgs/cli/
mod.rs

1mod error;
2mod modules;
3
4use clap::{Parser, Subcommand};
5
6use modules::Modules;
7
8#[derive(Debug, Parser)]
9#[command(version, about, long_about = None)]
10pub struct Cli {
11    #[command(subcommand)]
12    pub command: Command,
13}
14
15#[derive(Debug, Subcommand)]
16pub enum Command {
17    /// Load modules
18    Load {
19        /// the modules to load
20        #[command(flatten)]
21        modules: Modules,
22    },
23
24    /// Unload modules
25    Unload {
26        /// the modules to unload
27        #[command(flatten)]
28        modules: Modules,
29    },
30
31    /// List available modules
32    List,
33}
34
35#[cfg(test)]
36mod tests {
37    use super::*;
38    use crate::test_utils::prelude::*;
39
40    #[gtest]
41    fn verify_cli() {
42        use clap::CommandFactory;
43        Cli::command().debug_assert();
44    }
45}