Skip to main content

Module validated

Module validated 

Source
Available on crate features garde or validator only.
Expand description

Declarative post-deserialise validation via garde or validator (requires the corresponding feature). Declarative validation via garde or validator.

Provides Validated<T> (for garde) and ValidatedValidator<T> (for validator), which are transparent wrappers that run validation rules after deserialisation.

§Example (garde)

use noyalib::Validated;
use garde::Validate;
use serde::Deserialize;

#[derive(Deserialize, Validate)]
struct Server {
    #[garde(length(min = 1, max = 255))]
    host: String,
    #[garde(range(min = 1024, max = 65535))]
    port: u16,
}

let yaml = "host: db.local\nport: 5432\n";
let wrapped: Validated<Server> = noyalib::from_str(yaml).unwrap();
assert_eq!(wrapped.0.host, "db.local");

Structs§

Validatedgarde
A newtype that validates its inner value using the garde crate.
ValidatedValidatorvalidator
A newtype that validates its inner value using the validator crate.