diff --git a/src/bin/pbs-datastore.rs b/src/bin/pbs-datastore.rs index fdf092d9..c8f2805d 100644 --- a/src/bin/pbs-datastore.rs +++ b/src/bin/pbs-datastore.rs @@ -7,27 +7,27 @@ use apitest::cli::command::*; fn datastore_commands() -> CommandLineInterface { - let mut cmd_def = HashMap::new(); + let mut cmd_def = HashMap::::new(); - cmd_def.insert("list".to_owned(), CommandLineInterface::Simple(CliCommand { + cmd_def.insert("list".to_owned(), CliCommand { info: api3::config::datastore::get(), arg_param: vec![], fixed_param: vec![], - })); + }.into()); - cmd_def.insert("create".to_owned(), CommandLineInterface::Simple(CliCommand { + cmd_def.insert("create".to_owned(), CliCommand { info: api3::config::datastore::post(), arg_param: vec!["name", "path"], fixed_param: vec![], - })); + }.into()); - cmd_def.insert("remove".to_owned(), CommandLineInterface::Simple(CliCommand { + cmd_def.insert("remove".to_owned(), CliCommand { info: api3::config::datastore::delete(), arg_param: vec!["name"], fixed_param: vec![], - })); + }.into()); - CommandLineInterface::Nested(cmd_def) + cmd_def.into() } fn main() { diff --git a/src/cli/command.rs b/src/cli/command.rs index 2ad46377..dc8d2158 100644 --- a/src/cli/command.rs +++ b/src/cli/command.rs @@ -83,3 +83,15 @@ pub enum CommandLineInterface { Simple(CliCommand), Nested(HashMap), } + +impl From for CommandLineInterface { + fn from(cli_cmd: CliCommand) -> Self { + CommandLineInterface::Simple(cli_cmd) + } +} + +impl From> for CommandLineInterface { + fn from(map: HashMap) -> Self { + CommandLineInterface::Nested(map) + } +}