Module validation

Module validation 

Source
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.