pub trait ValidateEnumerate<T> {
    fn validate_enumerate(&self, enumerate: &[T]) -> Result<(), EnumerateError>;
}
Expand description

Enumerate validation.

See https://json-schema.org/understanding-json-schema/reference/generic.html#enumerated-values

use serde_json::json;
use serde_valid::{Validate, ValidateEnumerate};

struct MyType(String);

impl ValidateEnumerate<&'static str> for MyType {
    fn validate_enumerate(
        &self,
        enumerate: &[&'static str],
    ) -> Result<(), serde_valid::EnumerateError> {
        self.0.validate_enumerate(enumerate)
    }
}

#[derive(Validate)]
struct TestStruct {
    #[validate(enumerate("1", "2", "3"))]
    val: MyType,
}

let s = TestStruct {
    val: MyType("4".to_string()),
};

assert_eq!(
    s.validate().unwrap_err().to_string(),
    json!({
        "errors": [],
        "properties": {
            "val": {
                "errors": ["The value must be in [1, 2, 3]."]
            }
        }
    })
    .to_string()
);

Required Methods

Implementations on Foreign Types

Implementors