chore: Update jsonschema to 0.20.0

Signed-off-by: Dmitry Dygalo <dmitry.dygalo@workato.com>
This commit is contained in:
Dmitry Dygalo 2024-09-20 09:58:17 +02:00 committed by Graham Esau
parent 13ffa14d1f
commit f8c1fe21b7
3 changed files with 17 additions and 17 deletions

4
Cargo.lock generated
View file

@ -416,9 +416,9 @@ dependencies = [
[[package]] [[package]]
name = "jsonschema" name = "jsonschema"
version = "0.19.0" version = "0.20.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2be7aa9f08a262039c0b5eb11b792e4353dad5263f78e33312b7ba9e43b32ae9" checksum = "f2eef4e82b548e08ac880d307c8e8838b45f497a08d3202f3b26c9debaed8058"
dependencies = [ dependencies = [
"ahash", "ahash",
"anyhow", "anyhow",

View file

@ -37,7 +37,7 @@ uuid1 = { version = "1.0", default-features = false, optional = true, package =
pretty_assertions = "1.2.1" pretty_assertions = "1.2.1"
trybuild = "1.0" trybuild = "1.0"
serde = { version = "1.0", features = ["derive"] } serde = { version = "1.0", features = ["derive"] }
jsonschema = { version = "0.19.0", default-features = false } jsonschema = { version = "0.20", default-features = false }
snapbox = { version = "0.6.17", features = ["json"] } snapbox = { version = "0.6.17", features = ["json"] }
serde_repr = "0.1.19" serde_repr = "0.1.19"
# Use github source until published garde version supports `length(equal = ...)` attr # Use github source until published garde version supports `length(equal = ...)` attr

View file

@ -1,4 +1,4 @@
use jsonschema::JSONSchema as CompiledSchema; use jsonschema::Validator;
use schemars::{ use schemars::{
generate::{Contract, SchemaSettings}, generate::{Contract, SchemaSettings},
JsonSchema, Schema, JsonSchema, Schema,
@ -17,8 +17,8 @@ pub struct TestHelper<T: JsonSchema> {
phantom: PhantomData<T>, phantom: PhantomData<T>,
de_schema: Schema, de_schema: Schema,
ser_schema: Schema, ser_schema: Schema,
de_schema_compiled: OnceCell<CompiledSchema>, de_schema_validator: OnceCell<Validator>,
ser_schema_compiled: OnceCell<CompiledSchema>, ser_schema_validator: OnceCell<Validator>,
validator: fn(&T) -> bool, validator: fn(&T) -> bool,
} }
@ -33,8 +33,8 @@ impl<T: JsonSchema> TestHelper<T> {
phantom: PhantomData, phantom: PhantomData,
de_schema, de_schema,
ser_schema, ser_schema,
de_schema_compiled: OnceCell::new(), de_schema_validator: OnceCell::new(),
ser_schema_compiled: OnceCell::new(), ser_schema_validator: OnceCell::new(),
validator: |_| true, validator: |_| true,
} }
} }
@ -52,8 +52,8 @@ impl<T: JsonSchema> TestHelper<T> {
phantom: PhantomData, phantom: PhantomData,
de_schema, de_schema,
ser_schema, ser_schema,
de_schema_compiled: OnceCell::new(), de_schema_validator: OnceCell::new(),
ser_schema_compiled: OnceCell::new(), ser_schema_validator: OnceCell::new(),
validator: |_| true, validator: |_| true,
} }
} }
@ -137,22 +137,22 @@ impl<T: JsonSchema> TestHelper<T> {
} }
fn de_schema_validate(&self, instance: &Value) -> bool { fn de_schema_validate(&self, instance: &Value) -> bool {
self.de_schema_compiled self.de_schema_validator
.get_or_init(|| compile_schema(&self.de_schema)) .get_or_init(|| build_validator(&self.de_schema))
.is_valid(instance) .is_valid(instance)
} }
fn ser_schema_validate(&self, instance: &Value) -> bool { fn ser_schema_validate(&self, instance: &Value) -> bool {
self.ser_schema_compiled self.ser_schema_validator
.get_or_init(|| compile_schema(&self.ser_schema)) .get_or_init(|| build_validator(&self.ser_schema))
.is_valid(instance) .is_valid(instance)
} }
} }
fn compile_schema(schema: &Schema) -> CompiledSchema { fn build_validator(schema: &Schema) -> Validator {
CompiledSchema::options() jsonschema::options()
.should_validate_formats(true) .should_validate_formats(true)
.compile(schema.as_value()) .build(schema.as_value())
.expect("valid schema") .expect("valid schema")
} }