|
|
|
|
|
by tu6ge
1003 days ago
|
|
Valitron 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/) 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())
}
``` |
|