diff options
author | Matthias Beyer <mail@beyermatthias.de> | 2024-05-02 20:48:48 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-05-02 20:48:48 +0200 |
commit | 2b7f3735bee487c97b381ad6fe1bc5e6181c932f (patch) | |
tree | 48bc99ee5dff8eb9d885522111b0a3a7eb1ca5ec | |
parent | 344af0b4d62cbcf04f92ca3acd40204947087038 (diff) | |
parent | 17ceae620fe5abd910352cc0716e920975892278 (diff) |
build(deps): bump dialoguer from 0.10.3 to 0.11.0
-rw-r--r-- | Cargo.lock | 5 | ||||
-rw-r--r-- | Cargo.toml | 2 | ||||
-rw-r--r-- | src/command/add_command.rs | 49 | ||||
-rw-r--r-- | src/error.rs | 3 |
4 files changed, 35 insertions, 24 deletions
@@ -333,13 +333,14 @@ dependencies = [ [[package]] name = "dialoguer" -version = "0.10.3" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af3c796f3b0b408d9fd581611b47fa850821fcb84aa640b83a3c1a5be2d691f2" +checksum = "658bce805d770f407bc62102fca7c2c64ceef2fbcb2b8bd19d2765ce093980de" dependencies = [ "console", "shell-words", "tempfile", + "thiserror", "zeroize", ] @@ -20,7 +20,7 @@ cargo_metadata = "0.18.1" clap = { version = "4", features = [ "cargo", "derive", "wrap_help" ] } clap_complete = "4.2.1" comma = "1.0.0" -dialoguer = "0.10.3" +dialoguer = "0.11.0" env_logger = "0.10.2" getset = "0.1.2" git2 = "0.16.1" diff --git a/src/command/add_command.rs b/src/command/add_command.rs index b70dccf..b2e6040 100644 --- a/src/command/add_command.rs +++ b/src/command/add_command.rs @@ -312,18 +312,19 @@ fn interactive_provide( ) -> Result<Option<(String, FragmentData)>, InteractiveError> { match desc.fragment_type() { FragmentDataType::Ty(FragmentDataTypeDefinite::Bool) => { - let mut dialoguer = Confirm::new(); - dialoguer.with_prompt(format!("'{key}'?")); - if let Some(data) = desc.default_value() { + let dialoguer = Confirm::new().with_prompt(format!("'{key}'?")); + let dialoguer = if let Some(data) = desc.default_value() { if let FragmentData::Bool(b) = data { - dialoguer.default(*b); + dialoguer.default(*b) } else { return Err(InteractiveError::TypeError( desc.fragment_type().clone(), data.clone(), )); } - } + } else { + dialoguer + }; let value = if desc.required() { dialoguer.interact().map_err(InteractiveError::from)? @@ -338,47 +339,49 @@ fn interactive_provide( Ok(Some((key.to_string(), FragmentData::Bool(value)))) } FragmentDataType::Ty(FragmentDataTypeDefinite::Int) => { - let mut dialoguer = Input::<u64>::new(); - dialoguer.with_prompt(format!("Enter a number for '{key}'")); + let dialoguer = Input::<u64>::new().with_prompt(format!("Enter a number for '{key}'")); - if let Some(data) = desc.default_value() { + let dialoguer = if let Some(data) = desc.default_value() { if let FragmentData::Int(i) = data { - dialoguer.default(*i); + dialoguer.default(*i) } else { return Err(InteractiveError::TypeError( desc.fragment_type().clone(), data.clone(), )); } - } + } else { + dialoguer + }; let value = dialoguer.interact_text().map_err(InteractiveError::from)?; Ok(Some((key.to_string(), FragmentData::Int(value)))) } FragmentDataType::Ty(FragmentDataTypeDefinite::Str) => { - let mut dialoguer = Input::<String>::new(); - dialoguer.with_prompt(format!("Enter a text for '{key}'")); + let dialoguer = Input::<String>::new().with_prompt(format!("Enter a text for '{key}'")); - if let Some(data) = desc.default_value() { + let dialoguer = if let Some(data) = desc.default_value() { if let FragmentData::Str(s) = data { - dialoguer.default(s.to_string()); + dialoguer.default(s.to_string()) } else { return Err(InteractiveError::TypeError( desc.fragment_type().clone(), data.clone(), )); } - } + } else { + dialoguer + }; let value = dialoguer.interact_text().map_err(InteractiveError::from)?; Ok(Some((key.to_string(), FragmentData::Str(value)))) } FragmentDataType::OneOf(possible_values) => { - let mut dialoguer = Select::new(); - dialoguer.items(possible_values); - dialoguer.with_prompt("Select one"); + let dialoguer = Select::new() + .items(possible_values) + .with_prompt("Select one"); - if let Some(default_value) = desc.default_value() { + let dialoguer = if let Some(default_value) = desc.default_value() { if let FragmentData::Str(default_value) = default_value { if let Some(default_idx) = possible_values .iter() @@ -386,7 +389,9 @@ fn interactive_provide( .find(|(_, elmt)| *elmt == default_value) .map(|(i, _)| i) { - dialoguer.default(default_idx); + dialoguer.default(default_idx) + } else { + dialoguer } } else { return Err(InteractiveError::TypeError( @@ -394,7 +399,9 @@ fn interactive_provide( default_value.clone(), )); } - } + } else { + dialoguer + }; let value_idx = dialoguer.interact().map_err(InteractiveError::from)?; let value = possible_values diff --git a/src/error.rs b/src/error.rs index a7ded38..28f773b 100644 --- a/src/error.rs +++ b/src/error.rs @@ -166,4 +166,7 @@ pub enum InteractiveError { #[error("Index error: Tried to select entry {}, but list has only {}", .0, .1)] IndexError(usize, usize), + + #[error(transparent)] + Dialoguer(#[from] dialoguer::Error), } |