reactive_graph_client/client/system/plugin/
args.rs

1use clap::Args;
2
3use reactive_graph_client::client::plugin::variables::search::variables::SearchPluginVariables;
4
5use crate::client::system::plugin::commands::PluginsCommands;
6
7#[derive(Args, Debug, Clone)]
8#[clap(subcommand_required = true)]
9pub(crate) struct PluginsArgs {
10    #[command(subcommand)]
11    pub(crate) commands: Option<PluginsCommands>,
12}
13
14#[derive(Args, Debug, Clone)]
15pub(crate) struct PluginByNameArgs {
16    /// The plugin name.
17    pub name: String,
18}
19
20#[derive(Args, Debug, Clone)]
21pub(crate) struct SearchPluginsArgs {
22    /// The plugin name.
23    #[arg(long)]
24    pub name: Option<String>,
25
26    /// The plugin state.
27    #[arg(long)]
28    pub state: Option<String>,
29
30    /// The plugin file stem.
31    #[arg(long)]
32    pub stem: Option<String>,
33}
34
35impl From<SearchPluginsArgs> for SearchPluginVariables {
36    fn from(args: SearchPluginsArgs) -> Self {
37        SearchPluginVariables {
38            name: args.name,
39            state: args.state,
40            stem: args.stem,
41        }
42    }
43}