protovalidate-buffa 0.0.0

Runtime for protoc-gen-protovalidate-buffa — Validate trait, ValidationError types, CEL integration, rule helpers.
Documentation
use protovalidate_buffa::rules;

#[test]
fn is_uuid_accepts_v4_lowercase() {
    assert!(rules::string::is_uuid("550e8400-e29b-41d4-a716-446655440000"));
}

#[test]
fn is_uuid_accepts_uppercase() {
    assert!(rules::string::is_uuid("550E8400-E29B-41D4-A716-446655440000"));
}

#[test]
fn is_uuid_rejects_wrong_length() {
    assert!(!rules::string::is_uuid("550e8400"));
    assert!(!rules::string::is_uuid("550e8400-e29b-41d4-a716-44665544000"));   // 35
    assert!(!rules::string::is_uuid("550e8400-e29b-41d4-a716-4466554400000")); // 37
}

#[test]
fn is_uuid_rejects_missing_hyphens() {
    assert!(!rules::string::is_uuid("550e8400e29b41d4a716446655440000"));
}

#[test]
fn is_uuid_rejects_non_hex() {
    assert!(!rules::string::is_uuid("550e8400-e29b-41d4-a716-44665544000Z"));
}

#[test]
fn is_uuid_rejects_empty() {
    assert!(!rules::string::is_uuid(""));
}

#[test]
fn is_finite_f32_rejects_nan_and_inf() {
    assert!(rules::float::is_finite_f32(0.5));
    assert!(rules::float::is_finite_f32(-1.0));
    assert!(!rules::float::is_finite_f32(f32::NAN));
    assert!(!rules::float::is_finite_f32(f32::INFINITY));
    assert!(!rules::float::is_finite_f32(f32::NEG_INFINITY));
}

#[test]
fn is_finite_f64_rejects_nan_and_inf() {
    assert!(rules::float::is_finite_f64(0.5));
    assert!(!rules::float::is_finite_f64(f64::NAN));
    assert!(!rules::float::is_finite_f64(f64::INFINITY));
    assert!(!rules::float::is_finite_f64(f64::NEG_INFINITY));
}