2 ms·
Next Validator of Rust–Valitron
- tu6ge 3y agoValitron is an ergonomics, functional and configurable validator ## Features - Ergonomics validation - Build-in rule, e.g. Required, StartWith ... - Closure validate - Related validate, e.g. password confirm - Custom rule with other parameter - Check / modify input data - Custom error message type - Support different error types convert, it can use both build-in rules and custom error type simultaneously - Collect validate error messages - Support all types data on `#[derive(Serialize, Deserialize)]` ( visit [`serde`](https://serde.rs/ https://serde.rs/) for more info) ## Examples ```rust fn main() { let validator = Validator::new() .rule("name", Required.and(StartWith("hello"))) .rule("age", custom(age_limit)) .message([ ("name.required", "name is required"), ("name.start_with", "name should be starts with `hello`"), ]); let person = Person { name: "li", age: 18, }; let res = validator.validate(person); // or using trait let res = person.validate(validator); } fn age_limit(n: &mut u8) -> Result<(), Message> { if n >= 25 && n <= 45 { return Ok(()); } Err("age should be between 25 and 45".into()) } ```