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 definitionsnumeric_argument: Numeric argument validationstring_argument: String argument validationcollection_argument: Collection argument validationoption_argument: Option argument validationcondition: 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