Skip to main content

Module argument

Module argument 

Source
Expand description

Argument validation traits, functions, and error types.

§Argument Validation

Provides argument validation functionality similar to Java’s Argument class, but with a design more suitable for Rust conventions.

§Module Organization

  • argument_error: Error type definitions
  • numeric_argument: Numeric argument validation
  • string_argument: String argument validation
  • collection_argument: Collection argument validation
  • option_argument: Option argument validation
  • condition: Condition and state validation

§Design Philosophy

This module uses Rust’s trait extension pattern to provide validation methods for various types. Compared to Java’s static methods, this approach is more idiomatic in Rust and supports method chaining.

§Usage Examples

use qubit_argument::argument::{
    NumericArgument, StringArgument, CollectionArgument, ArgumentResult
};
use regex::Regex;

fn process_user_input(
    age: i32,
    username: &str,
    tags: &[String],
) -> ArgumentResult<()> {
    // Numeric validation
    let age = age.require_in_closed_range("age", 0, 150)?;

    // String validation (regex + chaining)
    let username_pattern = Regex::new(r"^[a-zA-Z][a-zA-Z0-9_]{2,19}$").unwrap();
    let username = username
        .require_non_blank("username")?
        .require_match("username", &username_pattern)?;

    // Collection validation (chaining)
    let tags = tags
        .require_non_empty("tags")?
        .require_length_at_most("tags", 10)?;

    println!("Age: {}, Username: {}, Tag count: {}", age, username, tags.len());
    Ok(())
}

Re-exports§

pub use argument_error::ArgumentError;
pub use argument_error::ArgumentResult;
pub use collection_argument::CollectionArgument;
pub use collection_argument::require_element_non_null;
pub use condition::check_argument;
pub use condition::check_argument_fmt;
pub use condition::check_argument_with_message;
pub use condition::check_bounds;
pub use condition::check_element_index;
pub use condition::check_position_index;
pub use condition::check_position_indexes;
pub use condition::check_state;
pub use condition::check_state_with_message;
pub use numeric_argument::NumericArgument;
pub use numeric_argument::require_equal;
pub use numeric_argument::require_not_equal;
pub use option_argument::OptionArgument;
pub use option_argument::require_null_or;
pub use string_argument::StringArgument;

Modules§

argument_error
Argument Validation Errors
collection_argument
Collection Argument Validation
condition
Condition Argument Validation
numeric_argument
Numeric Argument Validation
option_argument
Option Argument Validation
string_argument
String Argument Validation