25 lines
707 B
Rust
25 lines
707 B
Rust
use crate::validator::context::ValidationContext;
|
|
use crate::validator::error::ValidationError;
|
|
use crate::validator::result::ValidationResult;
|
|
|
|
impl<'a> ValidationContext<'a> {
|
|
pub(crate) fn validate_not(
|
|
&self,
|
|
result: &mut ValidationResult,
|
|
) -> Result<bool, ValidationError> {
|
|
if let Some(ref not_schema) = self.schema.not {
|
|
let derived = self.derive_for_schema(not_schema, true);
|
|
let sub_res = derived.validate()?;
|
|
if sub_res.is_valid() {
|
|
result.errors.push(ValidationError {
|
|
code: "NOT_VIOLATED".to_string(),
|
|
message: "Matched 'not' schema".to_string(),
|
|
path: self.path.to_string(),
|
|
});
|
|
}
|
|
}
|
|
|
|
Ok(true)
|
|
}
|
|
}
|