web-core-validator 0.3.3

Supporting validator crate for web-core crate
Documentation

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"] }