Expand description
§Validation Library
A flexible, extensible validation framework with support for:
- Synchronous and asynchronous validation
- Complex nested field validation
- Custom validation rules
- MongoDB integration for unique checks
- Default values and error accumulation
§Core Concepts
- Validators: Implement the
Validator
trait to create validation rules - Rules: Combine multiple validators with optional default values
- FormValidator: Validate complete forms/objects with field-level rules
§Example: Basic Usage
use validate_ro::{Rules, FormValidator};
use serde_json::json;
use validate_ro::rules::Rule;
// Create validation rules
let email_rule = Rules::new()
.add(Rule::required())
.add(Rule::email(None));
let age_rule = Rules::new()
.add(Rule::integer())
.add(Rule::min_value(18.0))
.default(json!(21)); // Default value if null
// Build form validator
let validator = FormValidator::new()
.add("email", email_rule)
.add("age", age_rule);
// Validate data
let data = json!({"email": "test@example.com"});
match validator.validate(&data) {
Ok(valid_data) => {
// age will be 21 (default value)
println!("Valid data: {:?}", valid_data);
},
Err(errors) => {
eprintln!("Validation errors: {:?}", errors);
}
}
Modules§
Macros§
Structs§
- Form
Validator - Validates complete forms/objects with field-level rules
- Rules
- Container for multiple validators with optional default value