Repository navigation
[Rust] Release 0.49.7
·
354 commits
to master
since this release
Added
CanonicalizeOptions::with_retrieverto fetch external resources absent from the registry.CanonicalizeOptions::with_base_urito resolve relative references in the root schema.- Canonicalization of a
oneOfwhose branches name disjoint targets, which degrades to a union. - Canonicalization of a vacuous
patternPropertiesentry beside schema-valuedadditionalProperties, where matching keys escape its value constraint. - Canonicalization of a Draft 4 closed pattern map with a reference nested under a property.
- Canonicalization of Draft 4 closed pattern maps that meet through an applicator.
- The complement of a reference back to a target already being negated, which stays symbolic instead of declining.
CanonicalSchema::definitionresolving#to the document the handle was read against.
Performance
- Up to 150x faster canonicalization of
notover a union of many branches. - 2% faster emission of canonical schemas, which no longer formats copied string values.
- 5% faster emission of canonical schemas, which no longer formats object keys while copying them.
- Up to 12% faster canonicalization of schemas that repeatedly intersect the same branches.
- 13% faster canonicalization of a non-dynamic OpenAPI document, which no longer scans every schema object for dynamic references.
- Faster canonicalization of schemas with local
$defsreferences, which avoid decoding unescaped definition names. - 23% faster canonicalization of an object whose keys a finite property-name set spells.
- 3% faster intersection of schemas where one side constrains nothing.
- Up to 31x faster canonicalization of a
oneOfwhose many branches overlap. - Up to 14x faster canonicalization of a union whose object branches share no values.
- 7% faster canonicalization of schemas that reach the same pair of nodes repeatedly.
- 5% faster canonicalization of objects, whose property maps no longer reach the allocator.
- Up to 8% faster canonicalization of schemas that reach
trueandfalsesubschemas repeatedly. - 2% faster canonicalization of schemas that assert known string formats.
Fixed
CanonicalSchema::definitionandCanonicalSchema::definitionshanding out a target that names the document root without that document, where#points at the target instead.- An
itemstail beyond an array's length ceiling surviving canonicalization, where it governs no element. CanonicalSchema::to_json_schemaleaving the document root out of a node emitted below it, where#points at that node instead.