Expand description
§Example:
ⓘ
use serde::Deserialize;
// A trait that the Validate derive will impl
use web_core_validator::{Validate, ValidationError};
#[derive(Debug, Validate, Deserialize)]
struct SignupData {
#[validate(email)]
mail: String,
#[validate(url)]
site: String,
#[validate(length(min = 1), custom(function = "validate_unique_username"))]
#[serde(rename = "firstName")]
first_name: String,
#[validate(range(min = 18, max = 20))]
age: u32,
}
fn validate_unique_username(username: &str) -> Result<(), ValidationError> {
if username == "xXxShad0wxXx" {
// the value of the username will automatically be added later
return Err(ValidationError::new("terrible_username"));
}
Ok(())
}
match signup_data.validate() {
Ok(_) => (),
Err(e) => return e;
};§Available Validations:
| Validation | Notes |
|---|---|
email | |
url | |
length | |
range | |
must_match | |
contains | |
does_not_contain | |
custom | |
regex | |
credit_card | (Requires the feature card to be enabled) |
non_control_character | |
required |
Checkout the project README of an in-depth usage description with examples.
§Installation:
Add the validator to the dependencies in the Cargo.toml file.
[dependencies]
validator = { version = "0.16", features = ["derive"] }Structs§
Enums§
Traits§
- AsRegex
- HasContext
- A marker trait to associate a validated type with its context/state type.
This is used by
ValidatedJsonto ensure the type can be extracted from axum requests with the correct state type. - Validate
- This is the original trait that was implemented by deriving
Validate. It will still be implemented for struct validations that don’t take custom arguments. The call is being forwarded to theValidateArgs<'v_a>trait. - Validate
Args - The
Argstype can use the lifetime'v_ato pass references onto the validator. - Validate
Contains - Validate
Does NotContain - Validate
Email - Validates whether the given string is an email based on the HTML5 spec. RFC 5322 is not practical in most circumstances and allows email addresses that are unfamiliar to most users.
- Validate
Ip - Validate
Length - Validates the length of the value given.
If the validator has
equalset, it will ignore anyminandmaxvalue. - Validate
NonControl Character - Validate
Range - Validates that the given
valueis inside the defined range. Themax,min,exclusive_maxandexclusive_minparameters are optional and will only be validated if they are notNone - Validate
Regex - Validate
Required - Validates whether the given Option is Some
- Validate
Url - Validates whether the string given is a url
Functions§
- validate_
must_ match - Validates that the 2 given fields match. Both fields are optionals