use crate::{Error, TetcoreCli};
use structopt::StructOpt;
use super::{
insert_key::InsertKeyCmd,
inspect_key::InspectKeyCmd,
generate::GenerateCmd,
inspect_node_key::InspectNodeKeyCmd,
generate_node_key::GenerateNodeKeyCmd,
};
#[derive(Debug, StructOpt)]
pub enum KeySubcommand {
GenerateNodeKey(GenerateNodeKeyCmd),
Generate(GenerateCmd),
InspectKey(InspectKeyCmd),
InspectNodeKey(InspectNodeKeyCmd),
Insert(InsertKeyCmd),
}
impl KeySubcommand {
pub fn run<C: TetcoreCli>(&self, cli: &C) -> Result<(), Error> {
match self {
KeySubcommand::GenerateNodeKey(cmd) => cmd.run(),
KeySubcommand::Generate(cmd) => cmd.run(),
KeySubcommand::InspectKey(cmd) => cmd.run(),
KeySubcommand::Insert(cmd) => cmd.run(cli),
KeySubcommand::InspectNodeKey(cmd) => cmd.run(),
}
}
}