validex 0.0.1

Input validating library.
Documentation

🚧 In Development 🚧

Example

use validex::*;

#[derive(Validate)]
struct SignupData {
    #[validate(email)]
    mail: String,
    #[validate(url)]
    site: String,
    #[validate(validate_unique_username)]
    first_name: String,
    #[validate(Range(18..24))]
    age: u32,
    #[validate(Range(1.0..=3.0))]
    height: f32,
}

fn validate_unique_username(username: &str) -> validex::Result {
    if username == "xXxShad0wxXx" {
        return Err("invalid input".into());
    }
    Ok(())
}

#[derive(Validate)]
struct User {
    #[validate(SignupData::validate)]
    signup_data: SignupData,
}

#[test]
fn test_basic() -> validex::Result {
    let signup_data = SignupData {
        mail: "alice.smith@example.com".into(),
        site: "personal-blog.net".into(),
        first_name: "Alice".into(),
        age: 20,
        height: 1.65,
    };

    User { signup_data }.validate()
}