Skip to main content

pimalaya_cli/
validator.rs

1//! Reusable inquire input validators.
2
3use inquire::{
4    CustomUserError,
5    validator::{StringValidator, Validation},
6};
7
8/// Validates that the input parses as a u16.
9#[derive(Clone, Debug, Default)]
10pub struct U16Validator;
11
12impl StringValidator for U16Validator {
13    fn validate(&self, input: &str) -> Result<Validation, CustomUserError> {
14        match input.parse::<u16>() {
15            Ok(_) => Ok(Validation::Valid),
16            Err(err) => Err(Box::new(err)),
17        }
18    }
19}
20
21/// Validates that the input parses as a usize.
22#[derive(Clone, Debug, Default)]
23pub struct UsizeValidator;
24
25impl StringValidator for UsizeValidator {
26    fn validate(&self, input: &str) -> Result<Validation, CustomUserError> {
27        match input.parse::<usize>() {
28            Ok(_) => Ok(Validation::Valid),
29            Err(err) => Err(Box::new(err)),
30        }
31    }
32}