Expand description
Validation utilities for interactive prompts.
This module provides enhanced validation logic for user input with real-time feedback, helpful error messages, and suggestions.
§What
Provides:
- Input validation functions with detailed error messages
- Suggestions for common mistakes
- Real-time validation feedback
- Reusable validation logic for different prompt types
§How
Implements validation functions that:
- Check input against specific criteria
- Return detailed error messages with suggestions
- Provide context-aware help
- Support custom validation rules
The validation functions can be used with dialoguer’s validate_with
method to provide real-time feedback during user input.
§Why
Centralized validation ensures:
- Consistent validation logic across all prompts
- Better user experience with helpful error messages
- Reduced user frustration through clear guidance
- Maintainable validation rules
§Examples
use sublime_cli_tools::interactive::validation::{validate_non_empty, validate_package_names};
// Validate non-empty input
let result = validate_non_empty(" ");
assert!(result.is_err());
let result = validate_non_empty("valid input");
assert!(result.is_ok());
// Validate package names
let packages = vec!["pkg-a".to_string(), "pkg-b".to_string()];
let result = validate_package_names(&["pkg-a", "pkg-c"], &packages);
assert!(result.is_err());Functions§
- validate_
at_ least_ one_ selected - Validates that at least one item is selected.
- validate_
bump_ type - Validates that a bump type is valid.
- validate_
environment_ names - Validates that environment names exist in the available environments list.
- validate_
non_ empty - Validates that input is not empty or whitespace-only.
- validate_
package_ names - Validates that package names exist in the available packages list.