1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
pub mod core_args;
pub mod config_args;
pub mod redeem_logic_plugin_args;
pub mod rate_plugin_args;
use {
    core_args::CoreCommand,
    config_args::ConfigOptions,
    redeem_logic_plugin_args:: {
        redeem_logic_forward_args::RedeemLogicForwardCommand,
    },
    rate_plugin_args::rate_switchboard_args::RateSwitchboardCommand,
    clap::{
        Parser,
        Subcommand
    }
};


#[derive(Debug, Parser)]
#[clap(name = "vyper-cli")]
#[clap(author, version, about)]
pub struct VyperCliArgs {

    #[clap(subcommand)]
    pub vyper: Vyper,

    #[clap(flatten)]
    pub config_override: ConfigOptions,
}

#[derive(Debug, Subcommand)]
pub enum Vyper {
    
    /// Used to access vyper core commands
    Core(CoreCommand),
    /// Used to access redeem logic forward commands
    RedeemLogicForward(RedeemLogicForwardCommand),
    /// Used to access rate-switchboard plugin
    RateSwitchboard(RateSwitchboardCommand)
}