summaryrefslogtreecommitdiffstats
path: root/src/utils/prompt_input.rs
diff options
context:
space:
mode:
authorsigoden <sigoden@gmail.com>2025-01-21 21:45:20 +0800
committerGitHub <noreply@github.com>2025-01-21 21:45:20 +0800
commitb666fc6bd24a039d2d23a312fa453d0fe3ed79ab (patch)
treec19b5c07ca3fba94ed99e2f34b0e96b04d43ba6d /src/utils/prompt_input.rs
parente522289b61bbf0d253f03433120ab3222da5e4d3 (diff)
downloadaichat-b666fc6bd24a039d2d23a312fa453d0fe3ed79ab.tar.gz
refactor: optimize configuration initialization (#1110)
Diffstat (limited to 'src/utils/prompt_input.rs')
-rw-r--r--src/utils/prompt_input.rs74
1 files changed, 0 insertions, 74 deletions
diff --git a/src/utils/prompt_input.rs b/src/utils/prompt_input.rs
deleted file mode 100644
index 26343a2..0000000
--- a/src/utils/prompt_input.rs
+++ /dev/null
@@ -1,74 +0,0 @@
-use inquire::{required, validator::Validation, Text};
-
-const MSG_REQUIRED: &str = "This field is required";
-const MSG_OPTIONAL: &str = "Optional field - Press ↵ to skip";
-
-pub fn prompt_input_string(desc: &str, required: bool) -> anyhow::Result<String> {
- let mut text = Text::new(desc);
- if required {
- text = text.with_validator(required!(MSG_REQUIRED))
- } else {
- text = text.with_help_message(MSG_OPTIONAL)
- }
- let text = text.prompt()?;
- Ok(text)
-}
-
-pub fn prompt_input_integer(desc: &str, required: bool) -> anyhow::Result<String> {
- let mut text = Text::new(desc);
- if required {
- text = text.with_validator(|text: &str| {
- let out = if text.is_empty() {
- Validation::Invalid(MSG_REQUIRED.into())
- } else {
- validate_integer(text)
- };
- Ok(out)
- })
- } else {
- text = text
- .with_validator(|text: &str| {
- let out = if text.is_empty() {
- Validation::Valid
- } else {
- validate_integer(text)
- };
- Ok(out)
- })
- .with_help_message(MSG_OPTIONAL)
- }
- let text = text.prompt()?;
- Ok(text)
-}
-
-#[derive(Debug, Clone, Copy)]
-pub enum PromptKind {
- String,
- Integer,
-}
-
-fn validate_integer(text: &str) -> Validation {
- if text.parse::<i32>().is_err() {
- Validation::Invalid("Must be a integer".into())
- } else {
- Validation::Valid
- }
-}
-
-#[derive(Debug)]
-pub struct SelectOption {
- pub value: String,
- pub description: String,
-}
-
-impl SelectOption {
- pub fn new(value: String, description: String) -> Self {
- Self { value, description }
- }
-}
-
-impl std::fmt::Display for SelectOption {
- fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
- write!(f, "{} ({})", self.value, self.description)
- }
-}