pub struct Validator { /* private fields */ }
Expand description
A compiled JSON Schema validator.
This structure represents a JSON Schema that has been parsed and compiled into an efficient internal representation for validation. It contains the root node of the schema tree and the configuration options used during compilation.
Implementations§
source§impl Validator
impl Validator
sourcepub fn options() -> ValidationOptions
pub fn options() -> ValidationOptions
Create a default ValidationOptions
for configuring JSON Schema validation.
Use this to set the draft version and other validation parameters.
§Example
let validator = jsonschema::options()
.with_draft(Draft::Draft7)
.build(&schema);
sourcepub fn new(schema: &Value) -> Result<Validator, ValidationError<'static>>
pub fn new(schema: &Value) -> Result<Validator, ValidationError<'static>>
Create a validator using the default options.
sourcepub fn compile(schema: &Value) -> Result<Validator, ValidationError<'static>>
👎Deprecated since 0.20.0: Use Validator::new
instead
pub fn compile(schema: &Value) -> Result<Validator, ValidationError<'static>>
Validator::new
insteadCreate a validator using the default options.
DEPRECATED: Use Validator::new
instead.
sourcepub fn validate<'instance>(
&'instance self,
instance: &'instance Value,
) -> Result<(), ErrorIterator<'instance>>
pub fn validate<'instance>( &'instance self, instance: &'instance Value, ) -> Result<(), ErrorIterator<'instance>>
Run validation against instance
and return an iterator over ValidationError
in the error case.
sourcepub fn is_valid(&self, instance: &Value) -> bool
pub fn is_valid(&self, instance: &Value) -> bool
Run validation against instance
but return a boolean result instead of an iterator.
It is useful for cases, where it is important to only know the fact if the data is valid or not.
This approach is much faster, than Validator::validate
.
sourcepub const fn apply<'a, 'b>(&'a self, instance: &'b Value) -> Output<'a, 'b>
pub const fn apply<'a, 'b>(&'a self, instance: &'b Value) -> Output<'a, 'b>
Apply the schema and return an Output
. No actual work is done at this point, the
evaluation of the schema is deferred until a method is called on the Output
. This is
because different output formats will have different performance characteristics.
§Examples
“basic” output format
use serde_json::json;
let schema = json!({
"title": "string value",
"type": "string"
});
let instance = json!("some string");
let validator = jsonschema::validator_for(&schema)
.expect("Invalid schema");
let output = validator.apply(&instance).basic();
assert_eq!(
serde_json::to_value(output)?,
json!({
"valid": true,
"annotations": [
{
"keywordLocation": "",
"instanceLocation": "",
"annotations": {
"title": "string value"
}
}
]
})
);
sourcepub fn config(&self) -> Arc<ValidationOptions>
pub fn config(&self) -> Arc<ValidationOptions>
The ValidationOptions
that were used to build this validator.