From ce003c18fbfd96fe6d5b832839686471f35d0794 Mon Sep 17 00:00:00 2001 From: Tom Alexander Date: Mon, 7 Oct 2019 15:47:37 -0400 Subject: [PATCH] support creating a namespace by letting the user type in a namespace. In the future while I replace dialouger I'll have a typeahead-style selection widget to let me unify these two functions --- src/main.rs | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/src/main.rs b/src/main.rs index ce2e924..dd4540f 100644 --- a/src/main.rs +++ b/src/main.rs @@ -181,11 +181,28 @@ fn change_namespace(db_conn: &mut db::DbHandle, master_key: [u8; 32]) -> String namespaces[selection].name.to_owned() } +fn create_namespace(db_conn: &mut db::DbHandle, master_key: [u8; 32]) -> String { + let namespace: String = Input::with_theme(&ColorfulTheme::default()) + .with_prompt("Namespace") + .default("main".to_owned()) + .interact() + .unwrap(); + namespace +} + fn shell(db_conn: &mut db::DbHandle, master_key: [u8; 32], _namespace: &str) { let mut namespace: String = _namespace.to_owned(); loop { - let selections = &["get", "list", "set", "generate", "change namespace", "exit"]; + let selections = &[ + "get", + "list", + "set", + "generate", + "change namespace", + "create namespace", + "exit", + ]; let main_menu_prompt = format!("Main Menu ({})", namespace); let selection = Select::with_theme(&ColorfulTheme::default()) @@ -202,6 +219,9 @@ fn shell(db_conn: &mut db::DbHandle, master_key: [u8; 32], _namespace: &str) { "change namespace" => { namespace = change_namespace(db_conn, master_key); } + "create namespace" => { + namespace = create_namespace(db_conn, master_key); + } "exit" => break, _ => panic!("Unrecognized command"), };