From f5d2142714d4fca25021f0df6825b0a5e40aea3b Mon Sep 17 00:00:00 2001 From: Graham Esau Date: Mon, 13 May 2024 18:33:48 +0100 Subject: [PATCH] Regenerate test schemas --- schemars/src/schema.rs | 13 ++- schemars/tests/expected/bound.json | 10 +- schemars/tests/expected/chrono-types.json | 40 +++---- schemars/tests/expected/crate_alias.json | 16 +-- schemars/tests/expected/default.json | 32 ++--- schemars/tests/expected/deprecated-enum.json | 26 ++--- .../tests/expected/deprecated-struct.json | 20 ++-- .../tests/expected/doc_comments_enum.json | 8 +- .../tests/expected/doc_comments_override.json | 10 +- .../tests/expected/doc_comments_struct.json | 10 +- .../doc_comments_struct_ref_siblings.json | 10 +- .../expected/duration_and_systemtime.json | 52 ++++----- .../expected/enum-adjacent-tagged-duf.json | 96 +++++++-------- .../tests/expected/enum-adjacent-tagged.json | 96 +++++++-------- .../tests/expected/enum-external-duf.json | 68 +++++------ schemars/tests/expected/enum-external.json | 68 +++++------ .../tests/expected/enum-internal-duf.json | 62 +++++----- schemars/tests/expected/enum-internal.json | 62 +++++----- .../expected/enum-simple-internal-duf.json | 24 ++-- .../tests/expected/enum-simple-internal.json | 24 ++-- .../tests/expected/enum-untagged-duf.json | 38 +++--- schemars/tests/expected/enum-untagged.json | 38 +++--- schemars/tests/expected/enumset.json | 2 +- schemars/tests/expected/examples.json | 48 ++++---- schemars/tests/expected/flatten.json | 26 ++--- schemars/tests/expected/from_json_value.json | 34 +++--- .../tests/expected/from_value_2019_09.json | 102 ++++++++-------- .../tests/expected/from_value_draft07.json | 102 ++++++++-------- .../tests/expected/from_value_openapi3.json | 40 +++---- schemars/tests/expected/indexmap.json | 10 +- .../expected/inline-subschemas-recursive.json | 16 +-- .../tests/expected/inline-subschemas.json | 16 +-- schemars/tests/expected/macro_built_enum.json | 16 +-- .../tests/expected/macro_built_struct.json | 18 +-- schemars/tests/expected/nonzero_ints.json | 30 ++--- schemars/tests/expected/os_strings.json | 32 ++--- .../tests/expected/property-name-struct.json | 12 +- schemars/tests/expected/range.json | 110 +++++++++--------- schemars/tests/expected/remote_derive.json | 56 ++++----- .../tests/expected/remote_derive_generic.json | 46 ++++---- schemars/tests/expected/result.json | 64 +++++----- schemars/tests/expected/same_name.json | 24 ++-- .../expected/schema-name-const-generics.json | 8 +- .../tests/expected/schema-name-custom.json | 28 ++--- .../expected/schema-name-mixed-generics.json | 32 ++--- .../expected/schema_settings-2019_09.json | 44 +++---- .../expected/schema_settings-openapi3.json | 2 +- schemars/tests/expected/schema_settings.json | 44 +++---- .../schema_with-enum-adjacent-tagged.json | 48 ++++---- .../expected/schema_with-enum-external.json | 40 +++---- .../expected/schema_with-enum-internal.json | 26 ++--- .../expected/schema_with-enum-untagged.json | 8 +- .../tests/expected/schema_with-struct.json | 18 +-- schemars/tests/expected/semver.json | 8 +- .../tests/expected/skip_enum_variants.json | 8 +- .../tests/expected/skip_struct_fields.json | 32 ++--- .../struct-normal-additional-properties.json | 18 +-- schemars/tests/expected/struct-normal.json | 18 +-- schemars/tests/expected/url.json | 10 +- schemars/tests/expected/validate.json | 110 +++++++++--------- schemars/tests/expected/validate_inner.json | 20 ++-- .../expected/validate_schemars_attrs.json | 110 +++++++++--------- 62 files changed, 1135 insertions(+), 1124 deletions(-) diff --git a/schemars/src/schema.rs b/schemars/src/schema.rs index 6a88158..82be821 100644 --- a/schemars/src/schema.rs +++ b/schemars/src/schema.rs @@ -179,8 +179,17 @@ mod ser { use serde::ser::{Serialize, SerializeMap, SerializeSeq}; use serde_json::Value; - const ORDERED_KEYWORDS_START: [&str; 6] = - ["$id", "$schema", "title", "description", "type", "format"]; + // The order of properties in a JSON Schema object is insignificant, but we explicitly order + // some of them here to make them easier for a human to read. + const ORDERED_KEYWORDS_START: [&str; 7] = [ + "$id", + "$schema", + "title", + "description", + "type", + "format", + "properties", + ]; const ORDERED_KEYWORDS_END: [&str; 2] = ["$defs", "definitions"]; pub(super) struct OrderedKeywordWrapper<'a>(pub &'a Value); diff --git a/schemars/tests/expected/bound.json b/schemars/tests/expected/bound.json index 3c022dc..e4ceb13 100644 --- a/schemars/tests/expected/bound.json +++ b/schemars/tests/expected/bound.json @@ -2,10 +2,6 @@ "$schema": "http://json-schema.org/draft-07/schema#", "title": "MyContainer", "type": "object", - "required": [ - "associated", - "generic" - ], "properties": { "associated": { "type": "string" @@ -13,5 +9,9 @@ "generic": { "type": "null" } - } + }, + "required": [ + "associated", + "generic" + ] } \ No newline at end of file diff --git a/schemars/tests/expected/chrono-types.json b/schemars/tests/expected/chrono-types.json index e3e788f..b96b00c 100644 --- a/schemars/tests/expected/chrono-types.json +++ b/schemars/tests/expected/chrono-types.json @@ -2,26 +2,7 @@ "$schema": "http://json-schema.org/draft-07/schema#", "title": "ChronoTypes", "type": "object", - "required": [ - "date_time", - "naive_date", - "naive_date_time", - "naive_time", - "weekday" - ], "properties": { - "weekday": { - "type": "string", - "enum": [ - "Mon", - "Tue", - "Wed", - "Thu", - "Fri", - "Sat", - "Sun" - ] - }, "date_time": { "type": "string", "format": "date-time" @@ -37,6 +18,25 @@ "naive_time": { "type": "string", "format": "partial-date-time" + }, + "weekday": { + "type": "string", + "enum": [ + "Mon", + "Tue", + "Wed", + "Thu", + "Fri", + "Sat", + "Sun" + ] } - } + }, + "required": [ + "date_time", + "naive_date", + "naive_date_time", + "naive_time", + "weekday" + ] } \ No newline at end of file diff --git a/schemars/tests/expected/crate_alias.json b/schemars/tests/expected/crate_alias.json index 66bf749..d37d482 100644 --- a/schemars/tests/expected/crate_alias.json +++ b/schemars/tests/expected/crate_alias.json @@ -2,18 +2,18 @@ "$schema": "http://json-schema.org/draft-07/schema#", "title": "Struct", "type": "object", - "required": [ - "bar", - "foo" - ], "properties": { + "bar": { + "type": "boolean" + }, "foo": { "description": "This is a document", "type": "integer", "format": "int32" - }, - "bar": { - "type": "boolean" } - } + }, + "required": [ + "bar", + "foo" + ] } \ No newline at end of file diff --git a/schemars/tests/expected/default.json b/schemars/tests/expected/default.json index aefef83..36f16e1 100644 --- a/schemars/tests/expected/default.json +++ b/schemars/tests/expected/default.json @@ -3,22 +3,22 @@ "title": "MyStruct", "type": "object", "properties": { - "my_int": { - "default": 0, - "type": "integer", - "format": "int32" - }, "my_bool": { - "default": false, - "type": "boolean" + "type": "boolean", + "default": false + }, + "my_int": { + "type": "integer", + "format": "int32", + "default": 0 }, "my_struct2": { - "default": "i:0 b:false", "allOf": [ { "$ref": "#/definitions/MyStruct2" } - ] + ], + "default": "i:0 b:false" }, "my_struct2_default_skipped": { "$ref": "#/definitions/MyStruct2" @@ -31,14 +31,14 @@ "MyStruct2": { "type": "object", "properties": { - "my_int": { - "default": 6, - "type": "integer", - "format": "int32" - }, "my_bool": { - "default": true, - "type": "boolean" + "type": "boolean", + "default": true + }, + "my_int": { + "type": "integer", + "format": "int32", + "default": 6 } } }, diff --git a/schemars/tests/expected/deprecated-enum.json b/schemars/tests/expected/deprecated-enum.json index 825ae50..55a98ef 100644 --- a/schemars/tests/expected/deprecated-enum.json +++ b/schemars/tests/expected/deprecated-enum.json @@ -10,38 +10,38 @@ ] }, { - "deprecated": true, "type": "string", + "deprecated": true, "enum": [ "DeprecatedUnitVariant" ] }, { - "deprecated": true, "type": "object", - "required": [ - "DeprecatedStructVariant" - ], "properties": { "DeprecatedStructVariant": { "type": "object", - "required": [ - "deprecated_field", - "foo" - ], "properties": { "deprecated_field": { - "deprecated": true, - "type": "boolean" + "type": "boolean", + "deprecated": true }, "foo": { "type": "integer", "format": "int32" } - } + }, + "required": [ + "deprecated_field", + "foo" + ] } }, - "additionalProperties": false + "additionalProperties": false, + "deprecated": true, + "required": [ + "DeprecatedStructVariant" + ] } ] } \ No newline at end of file diff --git a/schemars/tests/expected/deprecated-struct.json b/schemars/tests/expected/deprecated-struct.json index 8f7ba71..b915eb1 100644 --- a/schemars/tests/expected/deprecated-struct.json +++ b/schemars/tests/expected/deprecated-struct.json @@ -1,20 +1,20 @@ { "$schema": "http://json-schema.org/draft-07/schema#", "title": "DeprecatedStruct", - "deprecated": true, "type": "object", - "required": [ - "deprecated_field", - "foo" - ], "properties": { + "deprecated_field": { + "type": "boolean", + "deprecated": true + }, "foo": { "type": "integer", "format": "int32" - }, - "deprecated_field": { - "deprecated": true, - "type": "boolean" } - } + }, + "deprecated": true, + "required": [ + "deprecated_field", + "foo" + ] } \ No newline at end of file diff --git a/schemars/tests/expected/doc_comments_enum.json b/schemars/tests/expected/doc_comments_enum.json index 53aaa86..c983c1d 100644 --- a/schemars/tests/expected/doc_comments_enum.json +++ b/schemars/tests/expected/doc_comments_enum.json @@ -21,9 +21,6 @@ "title": "Complex variant", "description": "This is a struct-like variant.", "type": "object", - "required": [ - "Complex" - ], "properties": { "Complex": { "type": "object", @@ -39,7 +36,10 @@ } } }, - "additionalProperties": false + "additionalProperties": false, + "required": [ + "Complex" + ] } ] } \ No newline at end of file diff --git a/schemars/tests/expected/doc_comments_override.json b/schemars/tests/expected/doc_comments_override.json index 83dce79..0f90433 100644 --- a/schemars/tests/expected/doc_comments_override.json +++ b/schemars/tests/expected/doc_comments_override.json @@ -3,10 +3,6 @@ "title": "OverrideDocs struct", "description": "New description", "type": "object", - "required": [ - "my_int", - "my_undocumented_bool" - ], "properties": { "my_int": { "title": "My integer", @@ -17,5 +13,9 @@ "my_undocumented_bool": { "type": "boolean" } - } + }, + "required": [ + "my_int", + "my_undocumented_bool" + ] } \ No newline at end of file diff --git a/schemars/tests/expected/doc_comments_struct.json b/schemars/tests/expected/doc_comments_struct.json index 9f1b4bf..103a71a 100644 --- a/schemars/tests/expected/doc_comments_struct.json +++ b/schemars/tests/expected/doc_comments_struct.json @@ -3,11 +3,6 @@ "title": "This is the struct's title", "description": "This is the struct's description.", "type": "object", - "required": [ - "my_int", - "my_undocumented_bool", - "my_unit" - ], "properties": { "my_int": { "title": "An integer", @@ -26,6 +21,11 @@ ] } }, + "required": [ + "my_int", + "my_undocumented_bool", + "my_unit" + ], "definitions": { "MyUnitStruct": { "title": "A Unit", diff --git a/schemars/tests/expected/doc_comments_struct_ref_siblings.json b/schemars/tests/expected/doc_comments_struct_ref_siblings.json index 35bb648..a3dcbe0 100644 --- a/schemars/tests/expected/doc_comments_struct_ref_siblings.json +++ b/schemars/tests/expected/doc_comments_struct_ref_siblings.json @@ -3,11 +3,6 @@ "title": "This is the struct's title", "description": "This is the struct's description.", "type": "object", - "required": [ - "my_int", - "my_undocumented_bool", - "my_unit" - ], "properties": { "my_int": { "title": "An integer", @@ -22,6 +17,11 @@ "$ref": "#/definitions/MyUnitStruct" } }, + "required": [ + "my_int", + "my_undocumented_bool", + "my_unit" + ], "definitions": { "MyUnitStruct": { "title": "A Unit", diff --git a/schemars/tests/expected/duration_and_systemtime.json b/schemars/tests/expected/duration_and_systemtime.json index d01f7d5..b212599 100644 --- a/schemars/tests/expected/duration_and_systemtime.json +++ b/schemars/tests/expected/duration_and_systemtime.json @@ -2,10 +2,6 @@ "$schema": "http://json-schema.org/draft-07/schema#", "title": "MyStruct", "type": "object", - "required": [ - "duration", - "time" - ], "properties": { "duration": { "$ref": "#/definitions/Duration" @@ -14,44 +10,48 @@ "$ref": "#/definitions/SystemTime" } }, + "required": [ + "duration", + "time" + ], "definitions": { "Duration": { "type": "object", - "required": [ - "nanos", - "secs" - ], "properties": { - "secs": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, "nanos": { "type": "integer", "format": "uint32", "minimum": 0.0 - } - } - }, - "SystemTime": { - "type": "object", - "required": [ - "nanos_since_epoch", - "secs_since_epoch" - ], - "properties": { - "secs_since_epoch": { + }, + "secs": { "type": "integer", "format": "uint64", "minimum": 0.0 - }, + } + }, + "required": [ + "nanos", + "secs" + ] + }, + "SystemTime": { + "type": "object", + "properties": { "nanos_since_epoch": { "type": "integer", "format": "uint32", "minimum": 0.0 + }, + "secs_since_epoch": { + "type": "integer", + "format": "uint64", + "minimum": 0.0 } - } + }, + "required": [ + "nanos_since_epoch", + "secs_since_epoch" + ] } } } \ No newline at end of file diff --git a/schemars/tests/expected/enum-adjacent-tagged-duf.json b/schemars/tests/expected/enum-adjacent-tagged-duf.json index c5b54c8..a89ab50 100644 --- a/schemars/tests/expected/enum-adjacent-tagged-duf.json +++ b/schemars/tests/expected/enum-adjacent-tagged-duf.json @@ -4,9 +4,6 @@ "oneOf": [ { "type": "object", - "required": [ - "t" - ], "properties": { "t": { "type": "string", @@ -15,14 +12,13 @@ ] } }, - "additionalProperties": false + "additionalProperties": false, + "required": [ + "t" + ] }, { "type": "object", - "required": [ - "c", - "t" - ], "properties": { "c": { "type": "object", @@ -37,14 +33,14 @@ ] } }, - "additionalProperties": false - }, - { - "type": "object", + "additionalProperties": false, "required": [ "c", "t" - ], + ] + }, + { + "type": "object", "properties": { "c": { "$ref": "#/definitions/UnitStruct" @@ -56,14 +52,14 @@ ] } }, - "additionalProperties": false - }, - { - "type": "object", + "additionalProperties": false, "required": [ "c", "t" - ], + ] + }, + { + "type": "object", "properties": { "c": { "$ref": "#/definitions/Struct" @@ -75,21 +71,17 @@ ] } }, - "additionalProperties": false - }, - { - "type": "object", + "additionalProperties": false, "required": [ "c", "t" - ], + ] + }, + { + "type": "object", "properties": { "c": { "type": "object", - "required": [ - "bar", - "foo" - ], "properties": { "bar": { "type": "boolean" @@ -99,7 +91,11 @@ "format": "int32" } }, - "additionalProperties": false + "additionalProperties": false, + "required": [ + "bar", + "foo" + ] }, "t": { "type": "string", @@ -108,14 +104,14 @@ ] } }, - "additionalProperties": false - }, - { - "type": "object", + "additionalProperties": false, "required": [ "c", "t" - ], + ] + }, + { + "type": "object", "properties": { "c": { "type": "array", @@ -138,13 +134,14 @@ ] } }, - "additionalProperties": false + "additionalProperties": false, + "required": [ + "c", + "t" + ] }, { "type": "object", - "required": [ - "t" - ], "properties": { "t": { "type": "string", @@ -153,14 +150,13 @@ ] } }, - "additionalProperties": false + "additionalProperties": false, + "required": [ + "t" + ] }, { "type": "object", - "required": [ - "c", - "t" - ], "properties": { "c": { "type": "integer", @@ -173,16 +169,16 @@ ] } }, - "additionalProperties": false + "additionalProperties": false, + "required": [ + "c", + "t" + ] } ], "definitions": { "Struct": { "type": "object", - "required": [ - "bar", - "foo" - ], "properties": { "bar": { "type": "boolean" @@ -191,7 +187,11 @@ "type": "integer", "format": "int32" } - } + }, + "required": [ + "bar", + "foo" + ] }, "UnitStruct": { "type": "null" diff --git a/schemars/tests/expected/enum-adjacent-tagged.json b/schemars/tests/expected/enum-adjacent-tagged.json index efe19dc..9380c5b 100644 --- a/schemars/tests/expected/enum-adjacent-tagged.json +++ b/schemars/tests/expected/enum-adjacent-tagged.json @@ -4,9 +4,6 @@ "oneOf": [ { "type": "object", - "required": [ - "t" - ], "properties": { "t": { "type": "string", @@ -14,14 +11,13 @@ "UnitOne" ] } - } + }, + "required": [ + "t" + ] }, { "type": "object", - "required": [ - "c", - "t" - ], "properties": { "c": { "type": "object", @@ -35,14 +31,14 @@ "StringMap" ] } - } - }, - { - "type": "object", + }, "required": [ "c", "t" - ], + ] + }, + { + "type": "object", "properties": { "c": { "$ref": "#/definitions/UnitStruct" @@ -53,14 +49,14 @@ "UnitStructNewType" ] } - } - }, - { - "type": "object", + }, "required": [ "c", "t" - ], + ] + }, + { + "type": "object", "properties": { "c": { "$ref": "#/definitions/Struct" @@ -71,21 +67,17 @@ "StructNewType" ] } - } - }, - { - "type": "object", + }, "required": [ "c", "t" - ], + ] + }, + { + "type": "object", "properties": { "c": { "type": "object", - "required": [ - "bar", - "foo" - ], "properties": { "bar": { "type": "boolean" @@ -94,7 +86,11 @@ "type": "integer", "format": "int32" } - } + }, + "required": [ + "bar", + "foo" + ] }, "t": { "type": "string", @@ -102,14 +98,14 @@ "Struct" ] } - } - }, - { - "type": "object", + }, "required": [ "c", "t" - ], + ] + }, + { + "type": "object", "properties": { "c": { "type": "array", @@ -131,13 +127,14 @@ "Tuple" ] } - } + }, + "required": [ + "c", + "t" + ] }, { "type": "object", - "required": [ - "t" - ], "properties": { "t": { "type": "string", @@ -145,14 +142,13 @@ "UnitTwo" ] } - } + }, + "required": [ + "t" + ] }, { "type": "object", - "required": [ - "c", - "t" - ], "properties": { "c": { "type": "integer", @@ -164,16 +160,16 @@ "WithInt" ] } - } + }, + "required": [ + "c", + "t" + ] } ], "definitions": { "Struct": { "type": "object", - "required": [ - "bar", - "foo" - ], "properties": { "bar": { "type": "boolean" @@ -182,7 +178,11 @@ "type": "integer", "format": "int32" } - } + }, + "required": [ + "bar", + "foo" + ] }, "UnitStruct": { "type": "null" diff --git a/schemars/tests/expected/enum-external-duf.json b/schemars/tests/expected/enum-external-duf.json index b6b7b99..d492808 100644 --- a/schemars/tests/expected/enum-external-duf.json +++ b/schemars/tests/expected/enum-external-duf.json @@ -11,9 +11,6 @@ }, { "type": "object", - "required": [ - "stringMap" - ], "properties": { "stringMap": { "type": "object", @@ -22,44 +19,40 @@ } } }, - "additionalProperties": false + "additionalProperties": false, + "required": [ + "stringMap" + ] }, { "type": "object", - "required": [ - "unitStructNewType" - ], "properties": { "unitStructNewType": { "$ref": "#/definitions/UnitStruct" } }, - "additionalProperties": false + "additionalProperties": false, + "required": [ + "unitStructNewType" + ] }, { "type": "object", - "required": [ - "structNewType" - ], "properties": { "structNewType": { "$ref": "#/definitions/Struct" } }, - "additionalProperties": false + "additionalProperties": false, + "required": [ + "structNewType" + ] }, { "type": "object", - "required": [ - "struct" - ], "properties": { "struct": { "type": "object", - "required": [ - "bar", - "foo" - ], "properties": { "bar": { "type": "boolean" @@ -69,16 +62,20 @@ "format": "int32" } }, - "additionalProperties": false + "additionalProperties": false, + "required": [ + "bar", + "foo" + ] } }, - "additionalProperties": false + "additionalProperties": false, + "required": [ + "struct" + ] }, { "type": "object", - "required": [ - "tuple" - ], "properties": { "tuple": { "type": "array", @@ -95,29 +92,28 @@ "minItems": 2 } }, - "additionalProperties": false + "additionalProperties": false, + "required": [ + "tuple" + ] }, { "type": "object", - "required": [ - "withInt" - ], "properties": { "withInt": { "type": "integer", "format": "int32" } }, - "additionalProperties": false + "additionalProperties": false, + "required": [ + "withInt" + ] } ], "definitions": { "Struct": { "type": "object", - "required": [ - "bar", - "foo" - ], "properties": { "bar": { "type": "boolean" @@ -126,7 +122,11 @@ "type": "integer", "format": "int32" } - } + }, + "required": [ + "bar", + "foo" + ] }, "UnitStruct": { "type": "null" diff --git a/schemars/tests/expected/enum-external.json b/schemars/tests/expected/enum-external.json index cc721df..b09f107 100644 --- a/schemars/tests/expected/enum-external.json +++ b/schemars/tests/expected/enum-external.json @@ -11,9 +11,6 @@ }, { "type": "object", - "required": [ - "stringMap" - ], "properties": { "stringMap": { "type": "object", @@ -22,44 +19,40 @@ } } }, - "additionalProperties": false + "additionalProperties": false, + "required": [ + "stringMap" + ] }, { "type": "object", - "required": [ - "unitStructNewType" - ], "properties": { "unitStructNewType": { "$ref": "#/definitions/UnitStruct" } }, - "additionalProperties": false + "additionalProperties": false, + "required": [ + "unitStructNewType" + ] }, { "type": "object", - "required": [ - "structNewType" - ], "properties": { "structNewType": { "$ref": "#/definitions/Struct" } }, - "additionalProperties": false + "additionalProperties": false, + "required": [ + "structNewType" + ] }, { "type": "object", - "required": [ - "struct" - ], "properties": { "struct": { "type": "object", - "required": [ - "bar", - "foo" - ], "properties": { "bar": { "type": "boolean" @@ -68,16 +61,20 @@ "type": "integer", "format": "int32" } - } + }, + "required": [ + "bar", + "foo" + ] } }, - "additionalProperties": false + "additionalProperties": false, + "required": [ + "struct" + ] }, { "type": "object", - "required": [ - "tuple" - ], "properties": { "tuple": { "type": "array", @@ -94,29 +91,28 @@ "minItems": 2 } }, - "additionalProperties": false + "additionalProperties": false, + "required": [ + "tuple" + ] }, { "type": "object", - "required": [ - "withInt" - ], "properties": { "withInt": { "type": "integer", "format": "int32" } }, - "additionalProperties": false + "additionalProperties": false, + "required": [ + "withInt" + ] } ], "definitions": { "Struct": { "type": "object", - "required": [ - "bar", - "foo" - ], "properties": { "bar": { "type": "boolean" @@ -125,7 +121,11 @@ "type": "integer", "format": "int32" } - } + }, + "required": [ + "bar", + "foo" + ] }, "UnitStruct": { "type": "null" diff --git a/schemars/tests/expected/enum-internal-duf.json b/schemars/tests/expected/enum-internal-duf.json index 7a9bcd7..6db4d31 100644 --- a/schemars/tests/expected/enum-internal-duf.json +++ b/schemars/tests/expected/enum-internal-duf.json @@ -4,9 +4,6 @@ "oneOf": [ { "type": "object", - "required": [ - "typeProperty" - ], "properties": { "typeProperty": { "type": "string", @@ -15,13 +12,13 @@ ] } }, - "additionalProperties": false + "additionalProperties": false, + "required": [ + "typeProperty" + ] }, { "type": "object", - "required": [ - "typeProperty" - ], "properties": { "typeProperty": { "type": "string", @@ -32,13 +29,13 @@ }, "additionalProperties": { "type": "string" - } + }, + "required": [ + "typeProperty" + ] }, { "type": "object", - "required": [ - "typeProperty" - ], "properties": { "typeProperty": { "type": "string", @@ -47,15 +44,13 @@ ] } }, - "additionalProperties": false + "additionalProperties": false, + "required": [ + "typeProperty" + ] }, { "type": "object", - "required": [ - "bar", - "foo", - "typeProperty" - ], "properties": { "bar": { "type": "boolean" @@ -70,15 +65,15 @@ "StructNewType" ] } - } - }, - { - "type": "object", + }, "required": [ "bar", "foo", "typeProperty" - ], + ] + }, + { + "type": "object", "properties": { "bar": { "type": "boolean" @@ -94,13 +89,15 @@ ] } }, - "additionalProperties": false + "additionalProperties": false, + "required": [ + "bar", + "foo", + "typeProperty" + ] }, { "type": "object", - "required": [ - "typeProperty" - ], "properties": { "typeProperty": { "type": "string", @@ -109,14 +106,14 @@ ] } }, - "additionalProperties": false + "additionalProperties": false, + "required": [ + "typeProperty" + ] }, { "type": "object", "format": "int32", - "required": [ - "typeProperty" - ], "properties": { "typeProperty": { "type": "string", @@ -124,7 +121,10 @@ "WithInt" ] } - } + }, + "required": [ + "typeProperty" + ] } ] } \ No newline at end of file diff --git a/schemars/tests/expected/enum-internal.json b/schemars/tests/expected/enum-internal.json index 115dbf3..2382f2d 100644 --- a/schemars/tests/expected/enum-internal.json +++ b/schemars/tests/expected/enum-internal.json @@ -4,9 +4,6 @@ "oneOf": [ { "type": "object", - "required": [ - "typeProperty" - ], "properties": { "typeProperty": { "type": "string", @@ -14,13 +11,13 @@ "UnitOne" ] } - } + }, + "required": [ + "typeProperty" + ] }, { "type": "object", - "required": [ - "typeProperty" - ], "properties": { "typeProperty": { "type": "string", @@ -31,13 +28,13 @@ }, "additionalProperties": { "type": "string" - } + }, + "required": [ + "typeProperty" + ] }, { "type": "object", - "required": [ - "typeProperty" - ], "properties": { "typeProperty": { "type": "string", @@ -45,15 +42,13 @@ "UnitStructNewType" ] } - } + }, + "required": [ + "typeProperty" + ] }, { "type": "object", - "required": [ - "bar", - "foo", - "typeProperty" - ], "properties": { "bar": { "type": "boolean" @@ -68,15 +63,15 @@ "StructNewType" ] } - } - }, - { - "type": "object", + }, "required": [ "bar", "foo", "typeProperty" - ], + ] + }, + { + "type": "object", "properties": { "bar": { "type": "boolean" @@ -91,13 +86,15 @@ "Struct" ] } - } + }, + "required": [ + "bar", + "foo", + "typeProperty" + ] }, { "type": "object", - "required": [ - "typeProperty" - ], "properties": { "typeProperty": { "type": "string", @@ -105,14 +102,14 @@ "UnitTwo" ] } - } + }, + "required": [ + "typeProperty" + ] }, { "type": "object", "format": "int32", - "required": [ - "typeProperty" - ], "properties": { "typeProperty": { "type": "string", @@ -120,7 +117,10 @@ "WithInt" ] } - } + }, + "required": [ + "typeProperty" + ] } ] } \ No newline at end of file diff --git a/schemars/tests/expected/enum-simple-internal-duf.json b/schemars/tests/expected/enum-simple-internal-duf.json index 833f7b7..9e6e5d4 100644 --- a/schemars/tests/expected/enum-simple-internal-duf.json +++ b/schemars/tests/expected/enum-simple-internal-duf.json @@ -4,9 +4,6 @@ "oneOf": [ { "type": "object", - "required": [ - "typeProperty" - ], "properties": { "typeProperty": { "type": "string", @@ -15,13 +12,13 @@ ] } }, - "additionalProperties": false + "additionalProperties": false, + "required": [ + "typeProperty" + ] }, { "type": "object", - "required": [ - "typeProperty" - ], "properties": { "typeProperty": { "type": "string", @@ -30,13 +27,13 @@ ] } }, - "additionalProperties": false + "additionalProperties": false, + "required": [ + "typeProperty" + ] }, { "type": "object", - "required": [ - "typeProperty" - ], "properties": { "typeProperty": { "type": "string", @@ -45,7 +42,10 @@ ] } }, - "additionalProperties": false + "additionalProperties": false, + "required": [ + "typeProperty" + ] } ] } \ No newline at end of file diff --git a/schemars/tests/expected/enum-simple-internal.json b/schemars/tests/expected/enum-simple-internal.json index 50cd62c..a549c8c 100644 --- a/schemars/tests/expected/enum-simple-internal.json +++ b/schemars/tests/expected/enum-simple-internal.json @@ -4,9 +4,6 @@ "oneOf": [ { "type": "object", - "required": [ - "typeProperty" - ], "properties": { "typeProperty": { "type": "string", @@ -14,13 +11,13 @@ "A" ] } - } + }, + "required": [ + "typeProperty" + ] }, { "type": "object", - "required": [ - "typeProperty" - ], "properties": { "typeProperty": { "type": "string", @@ -28,13 +25,13 @@ "B" ] } - } + }, + "required": [ + "typeProperty" + ] }, { "type": "object", - "required": [ - "typeProperty" - ], "properties": { "typeProperty": { "type": "string", @@ -42,7 +39,10 @@ "C" ] } - } + }, + "required": [ + "typeProperty" + ] } ] } \ No newline at end of file diff --git a/schemars/tests/expected/enum-untagged-duf.json b/schemars/tests/expected/enum-untagged-duf.json index 24397bf..7ce7d3d 100644 --- a/schemars/tests/expected/enum-untagged-duf.json +++ b/schemars/tests/expected/enum-untagged-duf.json @@ -19,20 +19,20 @@ }, { "type": "object", - "required": [ - "bar", - "foo" - ], "properties": { + "bar": { + "type": "boolean" + }, "foo": { "type": "integer", "format": "int32" - }, - "bar": { - "type": "boolean" } }, - "additionalProperties": false + "additionalProperties": false, + "required": [ + "bar", + "foo" + ] }, { "type": "array", @@ -54,24 +54,24 @@ } ], "definitions": { - "UnitStruct": { - "type": "null" - }, "Struct": { "type": "object", - "required": [ - "bar", - "foo" - ], "properties": { + "bar": { + "type": "boolean" + }, "foo": { "type": "integer", "format": "int32" - }, - "bar": { - "type": "boolean" } - } + }, + "required": [ + "bar", + "foo" + ] + }, + "UnitStruct": { + "type": "null" } } } \ No newline at end of file diff --git a/schemars/tests/expected/enum-untagged.json b/schemars/tests/expected/enum-untagged.json index 7eccbe2..add81e4 100644 --- a/schemars/tests/expected/enum-untagged.json +++ b/schemars/tests/expected/enum-untagged.json @@ -19,19 +19,19 @@ }, { "type": "object", - "required": [ - "bar", - "foo" - ], "properties": { + "bar": { + "type": "boolean" + }, "foo": { "type": "integer", "format": "int32" - }, - "bar": { - "type": "boolean" } - } + }, + "required": [ + "bar", + "foo" + ] }, { "type": "array", @@ -53,24 +53,24 @@ } ], "definitions": { - "UnitStruct": { - "type": "null" - }, "Struct": { "type": "object", - "required": [ - "bar", - "foo" - ], "properties": { + "bar": { + "type": "boolean" + }, "foo": { "type": "integer", "format": "int32" - }, - "bar": { - "type": "boolean" } - } + }, + "required": [ + "bar", + "foo" + ] + }, + "UnitStruct": { + "type": "null" } } } \ No newline at end of file diff --git a/schemars/tests/expected/enumset.json b/schemars/tests/expected/enumset.json index 4950c93..b4dc26a 100644 --- a/schemars/tests/expected/enumset.json +++ b/schemars/tests/expected/enumset.json @@ -15,4 +15,4 @@ ] } } -} +} \ No newline at end of file diff --git a/schemars/tests/expected/examples.json b/schemars/tests/expected/examples.json index c02a139..9c5c5ab 100644 --- a/schemars/tests/expected/examples.json +++ b/schemars/tests/expected/examples.json @@ -1,6 +1,29 @@ { "$schema": "http://json-schema.org/draft-07/schema#", "title": "Struct", + "type": "object", + "properties": { + "bar": { + "type": "boolean" + }, + "baz": { + "type": [ + "string", + "null" + ], + "examples": [ + null + ] + }, + "foo": { + "type": "integer", + "format": "int32", + "examples": [ + 8, + null + ] + } + }, "examples": [ { "bar": false, @@ -9,31 +32,8 @@ }, null ], - "type": "object", "required": [ "bar", "foo" - ], - "properties": { - "foo": { - "examples": [ - 8, - null - ], - "type": "integer", - "format": "int32" - }, - "bar": { - "type": "boolean" - }, - "baz": { - "examples": [ - null - ], - "type": [ - "string", - "null" - ] - } - } + ] } \ No newline at end of file diff --git a/schemars/tests/expected/flatten.json b/schemars/tests/expected/flatten.json index fedf571..ec0aff3 100644 --- a/schemars/tests/expected/flatten.json +++ b/schemars/tests/expected/flatten.json @@ -2,27 +2,21 @@ "$schema": "http://json-schema.org/draft-07/schema#", "title": "Flat", "type": "object", - "required": [ - "b", - "f", - "s", - "v" - ], "properties": { + "b": { + "type": "boolean" + }, "f": { "type": "number", "format": "float" }, - "b": { - "type": "boolean" + "os": { + "type": "string", + "default": "" }, "s": { "type": "string" }, - "os": { - "default": "", - "type": "string" - }, "v": { "type": "array", "items": { @@ -30,5 +24,11 @@ "format": "int32" } } - } + }, + "required": [ + "b", + "f", + "s", + "v" + ] } \ No newline at end of file diff --git a/schemars/tests/expected/from_json_value.json b/schemars/tests/expected/from_json_value.json index 0d94b66..cd1c634 100644 --- a/schemars/tests/expected/from_json_value.json +++ b/schemars/tests/expected/from_json_value.json @@ -1,21 +1,5 @@ { "$schema": "http://json-schema.org/draft-07/schema#", - "examples": [ - { - "bool": true, - "minusOne": -1, - "null": null, - "object": { - "array": [ - "foo", - "bar" - ] - }, - "one": 1, - "zero": 0, - "zeroPointZero": 0.0 - } - ], "type": "object", "properties": { "bool": { @@ -45,5 +29,21 @@ "zeroPointZero": { "type": "number" } - } + }, + "examples": [ + { + "bool": true, + "minusOne": -1, + "null": null, + "object": { + "array": [ + "foo", + "bar" + ] + }, + "one": 1, + "zero": 0, + "zeroPointZero": 0.0 + } + ] } \ No newline at end of file diff --git a/schemars/tests/expected/from_value_2019_09.json b/schemars/tests/expected/from_value_2019_09.json index 9cea709..4c6adcf 100644 --- a/schemars/tests/expected/from_value_2019_09.json +++ b/schemars/tests/expected/from_value_2019_09.json @@ -1,6 +1,56 @@ { "$schema": "https://json-schema.org/draft/2019-09/schema", "title": "MyStruct", + "type": "object", + "properties": { + "myBool": { + "type": "boolean" + }, + "myInnerStruct": { + "type": "object", + "properties": { + "my_empty_map": { + "type": "object", + "additionalProperties": true + }, + "my_empty_vec": { + "type": "array", + "items": true + }, + "my_map": { + "type": "object", + "additionalProperties": { + "type": "number" + } + }, + "my_tuple": { + "type": "array", + "items": [ + { + "type": "string", + "maxLength": 1, + "minLength": 1 + }, + { + "type": "integer" + } + ], + "maxItems": 2, + "minItems": 2 + }, + "my_vec": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "myInt": { + "type": "integer" + }, + "myNullableEnum": true + }, "examples": [ { "myBool": true, @@ -22,55 +72,5 @@ "myInt": 123, "myNullableEnum": null } - ], - "type": "object", - "properties": { - "myInt": { - "type": "integer" - }, - "myBool": { - "type": "boolean" - }, - "myNullableEnum": true, - "myInnerStruct": { - "type": "object", - "properties": { - "my_map": { - "type": "object", - "additionalProperties": { - "type": "number" - } - }, - "my_vec": { - "type": "array", - "items": { - "type": "string" - } - }, - "my_empty_map": { - "type": "object", - "additionalProperties": true - }, - "my_empty_vec": { - "type": "array", - "items": true - }, - "my_tuple": { - "type": "array", - "items": [ - { - "type": "string", - "maxLength": 1, - "minLength": 1 - }, - { - "type": "integer" - } - ], - "maxItems": 2, - "minItems": 2 - } - } - } - } + ] } \ No newline at end of file diff --git a/schemars/tests/expected/from_value_draft07.json b/schemars/tests/expected/from_value_draft07.json index dec3996..5d87f02 100644 --- a/schemars/tests/expected/from_value_draft07.json +++ b/schemars/tests/expected/from_value_draft07.json @@ -1,6 +1,56 @@ { "$schema": "http://json-schema.org/draft-07/schema#", "title": "MyStruct", + "type": "object", + "properties": { + "myBool": { + "type": "boolean" + }, + "myInnerStruct": { + "type": "object", + "properties": { + "my_empty_map": { + "type": "object", + "additionalProperties": true + }, + "my_empty_vec": { + "type": "array", + "items": true + }, + "my_map": { + "type": "object", + "additionalProperties": { + "type": "number" + } + }, + "my_tuple": { + "type": "array", + "items": [ + { + "type": "string", + "maxLength": 1, + "minLength": 1 + }, + { + "type": "integer" + } + ], + "maxItems": 2, + "minItems": 2 + }, + "my_vec": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "myInt": { + "type": "integer" + }, + "myNullableEnum": true + }, "examples": [ { "myBool": true, @@ -22,55 +72,5 @@ "myInt": 123, "myNullableEnum": null } - ], - "type": "object", - "properties": { - "myInt": { - "type": "integer" - }, - "myBool": { - "type": "boolean" - }, - "myNullableEnum": true, - "myInnerStruct": { - "type": "object", - "properties": { - "my_map": { - "type": "object", - "additionalProperties": { - "type": "number" - } - }, - "my_vec": { - "type": "array", - "items": { - "type": "string" - } - }, - "my_empty_map": { - "type": "object", - "additionalProperties": true - }, - "my_empty_vec": { - "type": "array", - "items": true - }, - "my_tuple": { - "type": "array", - "items": [ - { - "type": "string", - "maxLength": 1, - "minLength": 1 - }, - { - "type": "integer" - } - ], - "maxItems": 2, - "minItems": 2 - } - } - } - } + ] } \ No newline at end of file diff --git a/schemars/tests/expected/from_value_openapi3.json b/schemars/tests/expected/from_value_openapi3.json index 858d286..0405935 100644 --- a/schemars/tests/expected/from_value_openapi3.json +++ b/schemars/tests/expected/from_value_openapi3.json @@ -2,26 +2,6 @@ "$schema": "https://spec.openapis.org/oas/3.0/schema/2021-09-28#/definitions/Schema", "title": "MyStruct", "type": "object", - "example": { - "myBool": true, - "myInnerStruct": { - "my_empty_map": {}, - "my_empty_vec": [], - "my_map": { - "": 0.0 - }, - "my_tuple": [ - "💩", - 42 - ], - "my_vec": [ - "hello", - "world" - ] - }, - "myInt": 123, - "myNullableEnum": null - }, "properties": { "myBool": { "type": "boolean" @@ -72,5 +52,25 @@ "myNullableEnum": { "nullable": true } + }, + "example": { + "myBool": true, + "myInnerStruct": { + "my_empty_map": {}, + "my_empty_vec": [], + "my_map": { + "": 0.0 + }, + "my_tuple": [ + "💩", + 42 + ], + "my_vec": [ + "hello", + "world" + ] + }, + "myInt": 123, + "myNullableEnum": null } } \ No newline at end of file diff --git a/schemars/tests/expected/indexmap.json b/schemars/tests/expected/indexmap.json index 98065d9..9c209e6 100644 --- a/schemars/tests/expected/indexmap.json +++ b/schemars/tests/expected/indexmap.json @@ -2,10 +2,6 @@ "$schema": "http://json-schema.org/draft-07/schema#", "title": "IndexMapTypes", "type": "object", - "required": [ - "map", - "set" - ], "properties": { "map": { "type": "object", @@ -21,5 +17,9 @@ }, "uniqueItems": true } - } + }, + "required": [ + "map", + "set" + ] } \ No newline at end of file diff --git a/schemars/tests/expected/inline-subschemas-recursive.json b/schemars/tests/expected/inline-subschemas-recursive.json index e051e5d..0c1eebe 100644 --- a/schemars/tests/expected/inline-subschemas-recursive.json +++ b/schemars/tests/expected/inline-subschemas-recursive.json @@ -18,14 +18,14 @@ "object", "null" ], - "required": [ - "recursive" - ], "properties": { "recursive": { "$ref": "#/definitions/RecursiveOuter" } - } + }, + "required": [ + "recursive" + ] } }, "definitions": { @@ -47,14 +47,14 @@ "object", "null" ], - "required": [ - "recursive" - ], "properties": { "recursive": { "$ref": "#/definitions/RecursiveOuter" } - } + }, + "required": [ + "recursive" + ] } } } diff --git a/schemars/tests/expected/inline-subschemas.json b/schemars/tests/expected/inline-subschemas.json index b731553..fe4e83e 100644 --- a/schemars/tests/expected/inline-subschemas.json +++ b/schemars/tests/expected/inline-subschemas.json @@ -2,22 +2,22 @@ "$schema": "http://json-schema.org/draft-07/schema#", "title": "MyJob", "type": "object", - "required": [ - "spec" - ], "properties": { "spec": { "type": "object", - "required": [ - "replicas" - ], "properties": { "replicas": { "type": "integer", "format": "uint32", "minimum": 0.0 } - } + }, + "required": [ + "replicas" + ] } - } + }, + "required": [ + "spec" + ] } \ No newline at end of file diff --git a/schemars/tests/expected/macro_built_enum.json b/schemars/tests/expected/macro_built_enum.json index d030787..51a9bb7 100644 --- a/schemars/tests/expected/macro_built_enum.json +++ b/schemars/tests/expected/macro_built_enum.json @@ -4,29 +4,29 @@ "oneOf": [ { "type": "object", - "required": [ - "InnerStruct" - ], "properties": { "InnerStruct": { "$ref": "#/definitions/InnerStruct" } }, - "additionalProperties": false + "additionalProperties": false, + "required": [ + "InnerStruct" + ] } ], "definitions": { "InnerStruct": { "type": "object", - "required": [ - "x" - ], "properties": { "x": { "type": "integer", "format": "int32" } - } + }, + "required": [ + "x" + ] } } } \ No newline at end of file diff --git a/schemars/tests/expected/macro_built_struct.json b/schemars/tests/expected/macro_built_struct.json index 811eae3..0c5840c 100644 --- a/schemars/tests/expected/macro_built_struct.json +++ b/schemars/tests/expected/macro_built_struct.json @@ -2,19 +2,19 @@ "$schema": "http://json-schema.org/draft-07/schema#", "title": "A", "type": "object", - "required": [ - "v", - "x" - ], "properties": { + "v": { + "type": "integer", + "format": "int32" + }, "x": { "type": "integer", "format": "uint8", "minimum": 0.0 - }, - "v": { - "type": "integer", - "format": "int32" } - } + }, + "required": [ + "v", + "x" + ] } \ No newline at end of file diff --git a/schemars/tests/expected/nonzero_ints.json b/schemars/tests/expected/nonzero_ints.json index cbfcfd9..3b83929 100644 --- a/schemars/tests/expected/nonzero_ints.json +++ b/schemars/tests/expected/nonzero_ints.json @@ -2,17 +2,13 @@ "$schema": "http://json-schema.org/draft-07/schema#", "title": "MyStruct", "type": "object", - "required": [ - "nonzero_signed", - "nonzero_unsigned", - "signed", - "unsigned" - ], "properties": { - "unsigned": { + "nonzero_signed": { "type": "integer", - "format": "uint32", - "minimum": 0.0 + "format": "int32", + "not": { + "const": 0 + } }, "nonzero_unsigned": { "type": "integer", @@ -23,12 +19,16 @@ "type": "integer", "format": "int32" }, - "nonzero_signed": { + "unsigned": { "type": "integer", - "format": "int32", - "not": { - "const": 0 - } + "format": "uint32", + "minimum": 0.0 } - } + }, + "required": [ + "nonzero_signed", + "nonzero_unsigned", + "signed", + "unsigned" + ] } \ No newline at end of file diff --git a/schemars/tests/expected/os_strings.json b/schemars/tests/expected/os_strings.json index d333675..50448ed 100644 --- a/schemars/tests/expected/os_strings.json +++ b/schemars/tests/expected/os_strings.json @@ -2,26 +2,23 @@ "$schema": "http://json-schema.org/draft-07/schema#", "title": "OsStrings", "type": "object", + "properties": { + "borrowed": { + "$ref": "#/definitions/OsString" + }, + "owned": { + "$ref": "#/definitions/OsString" + } + }, "required": [ "borrowed", "owned" ], - "properties": { - "owned": { - "$ref": "#/definitions/OsString" - }, - "borrowed": { - "$ref": "#/definitions/OsString" - } - }, "definitions": { "OsString": { "oneOf": [ { "type": "object", - "required": [ - "Unix" - ], "properties": { "Unix": { "type": "array", @@ -31,13 +28,13 @@ "minimum": 0.0 } } - } + }, + "required": [ + "Unix" + ] }, { "type": "object", - "required": [ - "Windows" - ], "properties": { "Windows": { "type": "array", @@ -47,7 +44,10 @@ "minimum": 0.0 } } - } + }, + "required": [ + "Windows" + ] } ] } diff --git a/schemars/tests/expected/property-name-struct.json b/schemars/tests/expected/property-name-struct.json index aa708fd..1aa6e78 100644 --- a/schemars/tests/expected/property-name-struct.json +++ b/schemars/tests/expected/property-name-struct.json @@ -2,11 +2,6 @@ "$schema": "http://json-schema.org/draft-07/schema#", "title": "MyStruct", "type": "object", - "required": [ - "camelCase", - "new_name_1", - "new_name_2" - ], "properties": { "camelCase": { "type": "integer", @@ -20,5 +15,10 @@ "type": "integer", "format": "int32" } - } + }, + "required": [ + "camelCase", + "new_name_1", + "new_name_2" + ] } \ No newline at end of file diff --git a/schemars/tests/expected/range.json b/schemars/tests/expected/range.json index 0bb3aeb..bb68e3a 100644 --- a/schemars/tests/expected/range.json +++ b/schemars/tests/expected/range.json @@ -2,88 +2,88 @@ "$schema": "http://json-schema.org/draft-07/schema#", "title": "MyStruct", "type": "object", + "properties": { + "bound": { + "$ref": "#/definitions/Bound_of_string" + }, + "inclusive": { + "$ref": "#/definitions/Range_of_double" + }, + "range": { + "$ref": "#/definitions/Range_of_uint" + } + }, "required": [ "bound", "inclusive", "range" ], - "properties": { - "range": { - "$ref": "#/definitions/Range_of_uint" - }, - "inclusive": { - "$ref": "#/definitions/Range_of_double" - }, - "bound": { - "$ref": "#/definitions/Bound_of_string" - } - }, "definitions": { - "Range_of_uint": { - "type": "object", - "required": [ - "end", - "start" - ], - "properties": { - "start": { - "type": "integer", - "format": "uint", - "minimum": 0.0 - }, - "end": { - "type": "integer", - "format": "uint", - "minimum": 0.0 - } - } - }, - "Range_of_double": { - "type": "object", - "required": [ - "end", - "start" - ], - "properties": { - "start": { - "type": "number", - "format": "double" - }, - "end": { - "type": "number", - "format": "double" - } - } - }, "Bound_of_string": { "oneOf": [ { "type": "object", - "required": [ - "Included" - ], "properties": { "Included": { "type": "string" } - } + }, + "required": [ + "Included" + ] }, { "type": "object", - "required": [ - "Excluded" - ], "properties": { "Excluded": { "type": "string" } - } + }, + "required": [ + "Excluded" + ] }, { "type": "string", "const": "Unbounded" } ] + }, + "Range_of_double": { + "type": "object", + "properties": { + "end": { + "type": "number", + "format": "double" + }, + "start": { + "type": "number", + "format": "double" + } + }, + "required": [ + "end", + "start" + ] + }, + "Range_of_uint": { + "type": "object", + "properties": { + "end": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "start": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + } + }, + "required": [ + "end", + "start" + ] } } } \ No newline at end of file diff --git a/schemars/tests/expected/remote_derive.json b/schemars/tests/expected/remote_derive.json index 6f09eb2..76df9b6 100644 --- a/schemars/tests/expected/remote_derive.json +++ b/schemars/tests/expected/remote_derive.json @@ -2,54 +2,54 @@ "$schema": "http://json-schema.org/draft-07/schema#", "title": "Process", "type": "object", - "required": [ - "command_line", - "wall_time" - ], "properties": { "command_line": { "type": "string" }, - "wall_time": { - "$ref": "#/definitions/Duration" + "system_cpu_time": { + "allOf": [ + { + "$ref": "#/definitions/Duration" + } + ], + "default": "0.000000000s" }, "user_cpu_time": { + "allOf": [ + { + "$ref": "#/definitions/Duration" + } + ], "default": { "nanos": 0, "secs": 0 - }, - "allOf": [ - { - "$ref": "#/definitions/Duration" - } - ] + } }, - "system_cpu_time": { - "default": "0.000000000s", - "allOf": [ - { - "$ref": "#/definitions/Duration" - } - ] + "wall_time": { + "$ref": "#/definitions/Duration" } }, + "required": [ + "command_line", + "wall_time" + ], "definitions": { "Duration": { "type": "object", - "required": [ - "nanos", - "secs" - ], "properties": { - "secs": { - "type": "integer", - "format": "int64" - }, "nanos": { "type": "integer", "format": "int32" + }, + "secs": { + "type": "integer", + "format": "int64" } - } + }, + "required": [ + "nanos", + "secs" + ] } } } \ No newline at end of file diff --git a/schemars/tests/expected/remote_derive_generic.json b/schemars/tests/expected/remote_derive_generic.json index 5a65f3b..d06320f 100644 --- a/schemars/tests/expected/remote_derive_generic.json +++ b/schemars/tests/expected/remote_derive_generic.json @@ -2,22 +2,10 @@ "$schema": "http://json-schema.org/draft-07/schema#", "title": "MyStruct_for_int32", "type": "object", - "required": [ - "byte_or_bool2", - "fake_map", - "s", - "unit_or_t2" - ], "properties": { "byte_or_bool2": { "$ref": "#/definitions/Or_for_uint8_and_boolean" }, - "unit_or_t2": { - "$ref": "#/definitions/Or_for_null_and_int32" - }, - "s": { - "$ref": "#/definitions/Str" - }, "fake_map": { "type": "object", "additionalProperties": { @@ -27,9 +15,32 @@ }, "uniqueItems": true } + }, + "s": { + "$ref": "#/definitions/Str" + }, + "unit_or_t2": { + "$ref": "#/definitions/Or_for_null_and_int32" } }, + "required": [ + "byte_or_bool2", + "fake_map", + "s", + "unit_or_t2" + ], "definitions": { + "Or_for_null_and_int32": { + "anyOf": [ + { + "type": "null" + }, + { + "type": "integer", + "format": "int32" + } + ] + }, "Or_for_uint8_and_boolean": { "anyOf": [ { @@ -42,17 +53,6 @@ } ] }, - "Or_for_null_and_int32": { - "anyOf": [ - { - "type": "null" - }, - { - "type": "integer", - "format": "int32" - } - ] - }, "Str": { "type": "string" } diff --git a/schemars/tests/expected/result.json b/schemars/tests/expected/result.json index 2a01573..44c079e 100644 --- a/schemars/tests/expected/result.json +++ b/schemars/tests/expected/result.json @@ -2,10 +2,6 @@ "$schema": "http://json-schema.org/draft-07/schema#", "title": "Container", "type": "object", - "required": [ - "result1", - "result2" - ], "properties": { "result1": { "$ref": "#/definitions/Result_of_MyStruct_or_Array_of_string" @@ -14,25 +10,38 @@ "$ref": "#/definitions/Result_of_boolean_or_null" } }, + "required": [ + "result1", + "result2" + ], "definitions": { + "MyStruct": { + "type": "object", + "properties": { + "foo": { + "type": "integer", + "format": "int32" + } + }, + "required": [ + "foo" + ] + }, "Result_of_MyStruct_or_Array_of_string": { "oneOf": [ { "type": "object", - "required": [ - "Ok" - ], "properties": { "Ok": { "$ref": "#/definitions/MyStruct" } - } + }, + "required": [ + "Ok" + ] }, { "type": "object", - "required": [ - "Err" - ], "properties": { "Err": { "type": "array", @@ -40,45 +49,36 @@ "type": "string" } } - } + }, + "required": [ + "Err" + ] } ] }, - "MyStruct": { - "type": "object", - "required": [ - "foo" - ], - "properties": { - "foo": { - "type": "integer", - "format": "int32" - } - } - }, "Result_of_boolean_or_null": { "oneOf": [ { "type": "object", - "required": [ - "Ok" - ], "properties": { "Ok": { "type": "boolean" } - } + }, + "required": [ + "Ok" + ] }, { "type": "object", - "required": [ - "Err" - ], "properties": { "Err": { "type": "null" } - } + }, + "required": [ + "Err" + ] } ] } diff --git a/schemars/tests/expected/same_name.json b/schemars/tests/expected/same_name.json index 9e4e6b3..ebea3fe 100644 --- a/schemars/tests/expected/same_name.json +++ b/schemars/tests/expected/same_name.json @@ -2,10 +2,6 @@ "$schema": "http://json-schema.org/draft-07/schema#", "title": "Config2", "type": "object", - "required": [ - "a_cfg", - "b_cfg" - ], "properties": { "a_cfg": { "$ref": "#/definitions/Config" @@ -14,28 +10,32 @@ "$ref": "#/definitions/Config2" } }, + "required": [ + "a_cfg", + "b_cfg" + ], "definitions": { "Config": { "type": "object", - "required": [ - "test" - ], "properties": { "test": { "type": "string" } - } + }, + "required": [ + "test" + ] }, "Config2": { "type": "object", - "required": [ - "test2" - ], "properties": { "test2": { "type": "string" } - } + }, + "required": [ + "test2" + ] } } } \ No newline at end of file diff --git a/schemars/tests/expected/schema-name-const-generics.json b/schemars/tests/expected/schema-name-const-generics.json index 7505b28..6bb3ab1 100644 --- a/schemars/tests/expected/schema-name-const-generics.json +++ b/schemars/tests/expected/schema-name-const-generics.json @@ -2,13 +2,13 @@ "$schema": "http://json-schema.org/draft-07/schema#", "title": "const-generics-z-42", "type": "object", - "required": [ - "foo" - ], "properties": { "foo": { "type": "integer", "format": "int32" } - } + }, + "required": [ + "foo" + ] } \ No newline at end of file diff --git a/schemars/tests/expected/schema-name-custom.json b/schemars/tests/expected/schema-name-custom.json index 844699a..4e6cc36 100644 --- a/schemars/tests/expected/schema-name-custom.json +++ b/schemars/tests/expected/schema-name-custom.json @@ -2,14 +2,10 @@ "$schema": "http://json-schema.org/draft-07/schema#", "title": "a-new-name-Array_of_string-int32-int32", "type": "object", - "required": [ - "inner", - "t", - "u", - "v", - "w" - ], "properties": { + "inner": { + "$ref": "#/definitions/another-new-name" + }, "t": { "type": "integer", "format": "int32" @@ -25,23 +21,27 @@ "items": { "type": "string" } - }, - "inner": { - "$ref": "#/definitions/another-new-name" } }, + "required": [ + "inner", + "t", + "u", + "v", + "w" + ], "definitions": { "another-new-name": { "type": "object", - "required": [ - "foo" - ], "properties": { "foo": { "type": "integer", "format": "int32" } - } + }, + "required": [ + "foo" + ] } } } \ No newline at end of file diff --git a/schemars/tests/expected/schema-name-mixed-generics.json b/schemars/tests/expected/schema-name-mixed-generics.json index bddd083..0da8044 100644 --- a/schemars/tests/expected/schema-name-mixed-generics.json +++ b/schemars/tests/expected/schema-name-mixed-generics.json @@ -2,10 +2,6 @@ "$schema": "http://json-schema.org/draft-07/schema#", "title": "MixedGenericStruct_for_MyStruct_for_int32_and_null_and_boolean_and_Array_of_string_and_42_and_z", "type": "object", - "required": [ - "foo", - "generic" - ], "properties": { "foo": { "type": "integer", @@ -15,28 +11,25 @@ "$ref": "#/definitions/MyStruct_for_int32_and_null_and_boolean_and_Array_of_string" } }, + "required": [ + "foo", + "generic" + ], "definitions": { "MySimpleStruct": { "type": "object", - "required": [ - "foo" - ], "properties": { "foo": { "type": "integer", "format": "int32" } - } + }, + "required": [ + "foo" + ] }, "MyStruct_for_int32_and_null_and_boolean_and_Array_of_string": { "type": "object", - "required": [ - "inner", - "t", - "u", - "v", - "w" - ], "properties": { "inner": { "$ref": "#/definitions/MySimpleStruct" @@ -57,7 +50,14 @@ "type": "string" } } - } + }, + "required": [ + "inner", + "t", + "u", + "v", + "w" + ] } } } \ No newline at end of file diff --git a/schemars/tests/expected/schema_settings-2019_09.json b/schemars/tests/expected/schema_settings-2019_09.json index fb936a7..4e18426 100644 --- a/schemars/tests/expected/schema_settings-2019_09.json +++ b/schemars/tests/expected/schema_settings-2019_09.json @@ -2,25 +2,7 @@ "$schema": "https://json-schema.org/draft/2019-09/schema", "title": "Outer", "type": "object", - "required": [ - "int", - "value", - "values" - ], "properties": { - "int": { - "examples": [ - 8, - null - ], - "type": "integer", - "format": "int32" - }, - "values": { - "type": "object", - "additionalProperties": true - }, - "value": true, "inner": { "anyOf": [ { @@ -30,8 +12,26 @@ "type": "null" } ] + }, + "int": { + "type": "integer", + "format": "int32", + "examples": [ + 8, + null + ] + }, + "value": true, + "values": { + "type": "object", + "additionalProperties": true } }, + "required": [ + "int", + "value", + "values" + ], "definitions": { "Inner": { "oneOf": [ @@ -51,13 +51,13 @@ }, { "type": "object", - "required": [ - "ValueNewType" - ], "properties": { "ValueNewType": true }, - "additionalProperties": false + "additionalProperties": false, + "required": [ + "ValueNewType" + ] } ] } diff --git a/schemars/tests/expected/schema_settings-openapi3.json b/schemars/tests/expected/schema_settings-openapi3.json index 15b752d..5318b01 100644 --- a/schemars/tests/expected/schema_settings-openapi3.json +++ b/schemars/tests/expected/schema_settings-openapi3.json @@ -46,10 +46,10 @@ }, { "type": "object", - "additionalProperties": false, "properties": { "ValueNewType": {} }, + "additionalProperties": false, "required": [ "ValueNewType" ] diff --git a/schemars/tests/expected/schema_settings.json b/schemars/tests/expected/schema_settings.json index c876d6f..8e70c7c 100644 --- a/schemars/tests/expected/schema_settings.json +++ b/schemars/tests/expected/schema_settings.json @@ -2,25 +2,7 @@ "$schema": "http://json-schema.org/draft-07/schema#", "title": "Outer", "type": "object", - "required": [ - "int", - "value", - "values" - ], "properties": { - "int": { - "examples": [ - 8, - null - ], - "type": "integer", - "format": "int32" - }, - "values": { - "type": "object", - "additionalProperties": true - }, - "value": true, "inner": { "anyOf": [ { @@ -30,8 +12,26 @@ "type": "null" } ] + }, + "int": { + "type": "integer", + "format": "int32", + "examples": [ + 8, + null + ] + }, + "value": true, + "values": { + "type": "object", + "additionalProperties": true } }, + "required": [ + "int", + "value", + "values" + ], "definitions": { "Inner": { "oneOf": [ @@ -51,13 +51,13 @@ }, { "type": "object", - "required": [ - "ValueNewType" - ], "properties": { "ValueNewType": true }, - "additionalProperties": false + "additionalProperties": false, + "required": [ + "ValueNewType" + ] } ] } diff --git a/schemars/tests/expected/schema_with-enum-adjacent-tagged.json b/schemars/tests/expected/schema_with-enum-adjacent-tagged.json index 3ecba4c..c29c59e 100644 --- a/schemars/tests/expected/schema_with-enum-adjacent-tagged.json +++ b/schemars/tests/expected/schema_with-enum-adjacent-tagged.json @@ -4,21 +4,17 @@ "oneOf": [ { "type": "object", - "required": [ - "c", - "t" - ], "properties": { "c": { "type": "object", - "required": [ - "foo" - ], "properties": { "foo": { "type": "boolean" } - } + }, + "required": [ + "foo" + ] }, "t": { "type": "string", @@ -26,14 +22,14 @@ "Struct" ] } - } - }, - { - "type": "object", + }, "required": [ "c", "t" - ], + ] + }, + { + "type": "object", "properties": { "c": { "type": "boolean" @@ -44,14 +40,14 @@ "NewType" ] } - } - }, - { - "type": "object", + }, "required": [ "c", "t" - ], + ] + }, + { + "type": "object", "properties": { "c": { "type": "array", @@ -73,14 +69,14 @@ "Tuple" ] } - } - }, - { - "type": "object", + }, "required": [ "c", "t" - ], + ] + }, + { + "type": "object", "properties": { "c": { "type": "boolean" @@ -91,7 +87,11 @@ "Unit" ] } - } + }, + "required": [ + "c", + "t" + ] } ] } \ No newline at end of file diff --git a/schemars/tests/expected/schema_with-enum-external.json b/schemars/tests/expected/schema_with-enum-external.json index dea0219..78b6475 100644 --- a/schemars/tests/expected/schema_with-enum-external.json +++ b/schemars/tests/expected/schema_with-enum-external.json @@ -4,41 +4,38 @@ "oneOf": [ { "type": "object", - "required": [ - "struct" - ], "properties": { "struct": { "type": "object", - "required": [ - "foo" - ], "properties": { "foo": { "type": "boolean" } - } + }, + "required": [ + "foo" + ] } }, - "additionalProperties": false + "additionalProperties": false, + "required": [ + "struct" + ] }, { "type": "object", - "required": [ - "newType" - ], "properties": { "newType": { "type": "boolean" } }, - "additionalProperties": false + "additionalProperties": false, + "required": [ + "newType" + ] }, { "type": "object", - "required": [ - "tuple" - ], "properties": { "tuple": { "type": "array", @@ -55,19 +52,22 @@ "minItems": 2 } }, - "additionalProperties": false + "additionalProperties": false, + "required": [ + "tuple" + ] }, { "type": "object", - "required": [ - "unit" - ], "properties": { "unit": { "type": "boolean" } }, - "additionalProperties": false + "additionalProperties": false, + "required": [ + "unit" + ] } ] } \ No newline at end of file diff --git a/schemars/tests/expected/schema_with-enum-internal.json b/schemars/tests/expected/schema_with-enum-internal.json index c4a0cc1..8b6fbeb 100644 --- a/schemars/tests/expected/schema_with-enum-internal.json +++ b/schemars/tests/expected/schema_with-enum-internal.json @@ -4,10 +4,6 @@ "oneOf": [ { "type": "object", - "required": [ - "foo", - "typeProperty" - ], "properties": { "foo": { "type": "boolean" @@ -18,13 +14,14 @@ "Struct" ] } - } + }, + "required": [ + "foo", + "typeProperty" + ] }, { "type": "object", - "required": [ - "typeProperty" - ], "properties": { "typeProperty": { "type": "string", @@ -32,13 +29,13 @@ "NewType" ] } - } + }, + "required": [ + "typeProperty" + ] }, { "type": "object", - "required": [ - "typeProperty" - ], "properties": { "typeProperty": { "type": "string", @@ -46,7 +43,10 @@ "Unit" ] } - } + }, + "required": [ + "typeProperty" + ] } ] } \ No newline at end of file diff --git a/schemars/tests/expected/schema_with-enum-untagged.json b/schemars/tests/expected/schema_with-enum-untagged.json index 55147de..b912feb 100644 --- a/schemars/tests/expected/schema_with-enum-untagged.json +++ b/schemars/tests/expected/schema_with-enum-untagged.json @@ -4,14 +4,14 @@ "anyOf": [ { "type": "object", - "required": [ - "foo" - ], "properties": { "foo": { "type": "boolean" } - } + }, + "required": [ + "foo" + ] }, { "type": "boolean" diff --git a/schemars/tests/expected/schema_with-struct.json b/schemars/tests/expected/schema_with-struct.json index feb5b51..40b5c56 100644 --- a/schemars/tests/expected/schema_with-struct.json +++ b/schemars/tests/expected/schema_with-struct.json @@ -2,21 +2,21 @@ "$schema": "http://json-schema.org/draft-07/schema#", "title": "Struct", "type": "object", - "required": [ - "bar", - "baz", - "foo" - ], "properties": { - "foo": { - "type": "boolean" - }, "bar": { "type": "integer", "format": "int32" }, "baz": { "type": "boolean" + }, + "foo": { + "type": "boolean" } - } + }, + "required": [ + "bar", + "baz", + "foo" + ] } \ No newline at end of file diff --git a/schemars/tests/expected/semver.json b/schemars/tests/expected/semver.json index d87ad04..e8c59b9 100644 --- a/schemars/tests/expected/semver.json +++ b/schemars/tests/expected/semver.json @@ -2,11 +2,13 @@ "$schema": "http://json-schema.org/draft-07/schema#", "title": "SemverTypes", "type": "object", - "required": ["version"], "properties": { "version": { "type": "string", "pattern": "^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$" } - } -} + }, + "required": [ + "version" + ] +} \ No newline at end of file diff --git a/schemars/tests/expected/skip_enum_variants.json b/schemars/tests/expected/skip_enum_variants.json index ba1bf23..b955e77 100644 --- a/schemars/tests/expected/skip_enum_variants.json +++ b/schemars/tests/expected/skip_enum_variants.json @@ -10,16 +10,16 @@ }, { "type": "object", - "required": [ - "Included1" - ], "properties": { "Included1": { "type": "number", "format": "float" } }, - "additionalProperties": false + "additionalProperties": false, + "required": [ + "Included1" + ] } ] } \ No newline at end of file diff --git a/schemars/tests/expected/skip_struct_fields.json b/schemars/tests/expected/skip_struct_fields.json index d488561..21e01a6 100644 --- a/schemars/tests/expected/skip_struct_fields.json +++ b/schemars/tests/expected/skip_struct_fields.json @@ -2,23 +2,23 @@ "$schema": "http://json-schema.org/draft-07/schema#", "title": "MyStruct", "type": "object", + "properties": { + "included": { + "type": "null" + }, + "readable": { + "type": "string", + "default": "", + "readOnly": true + }, + "writable": { + "type": "number", + "format": "float", + "writeOnly": true + } + }, "required": [ "included", "writable" - ], - "properties": { - "readable": { - "default": "", - "readOnly": true, - "type": "string" - }, - "writable": { - "writeOnly": true, - "type": "number", - "format": "float" - }, - "included": { - "type": "null" - } - } + ] } \ No newline at end of file diff --git a/schemars/tests/expected/struct-normal-additional-properties.json b/schemars/tests/expected/struct-normal-additional-properties.json index 1a8d749..ed8602a 100644 --- a/schemars/tests/expected/struct-normal-additional-properties.json +++ b/schemars/tests/expected/struct-normal-additional-properties.json @@ -2,15 +2,7 @@ "$schema": "http://json-schema.org/draft-07/schema#", "title": "Struct", "type": "object", - "required": [ - "bar", - "foo" - ], "properties": { - "foo": { - "type": "integer", - "format": "int32" - }, "bar": { "type": "boolean" }, @@ -19,7 +11,15 @@ "string", "null" ] + }, + "foo": { + "type": "integer", + "format": "int32" } }, - "additionalProperties": false + "additionalProperties": false, + "required": [ + "bar", + "foo" + ] } \ No newline at end of file diff --git a/schemars/tests/expected/struct-normal.json b/schemars/tests/expected/struct-normal.json index cee25b1..e6fe68b 100644 --- a/schemars/tests/expected/struct-normal.json +++ b/schemars/tests/expected/struct-normal.json @@ -2,15 +2,7 @@ "$schema": "http://json-schema.org/draft-07/schema#", "title": "Struct", "type": "object", - "required": [ - "bar", - "foo" - ], "properties": { - "foo": { - "type": "integer", - "format": "int32" - }, "bar": { "type": "boolean" }, @@ -19,6 +11,14 @@ "string", "null" ] + }, + "foo": { + "type": "integer", + "format": "int32" } - } + }, + "required": [ + "bar", + "foo" + ] } \ No newline at end of file diff --git a/schemars/tests/expected/url.json b/schemars/tests/expected/url.json index ddb8c5a..5722f9e 100644 --- a/schemars/tests/expected/url.json +++ b/schemars/tests/expected/url.json @@ -2,13 +2,13 @@ "$schema": "http://json-schema.org/draft-07/schema#", "title": "UrlTypes", "type": "object", - "required": [ - "url" - ], "properties": { "url": { "type": "string", "format": "uri" } - } -} + }, + "required": [ + "url" + ] +} \ No newline at end of file diff --git a/schemars/tests/expected/validate.json b/schemars/tests/expected/validate.json index d4a14e3..38aabcc 100644 --- a/schemars/tests/expected/validate.json +++ b/schemars/tests/expected/validate.json @@ -2,49 +2,7 @@ "$schema": "http://json-schema.org/draft-07/schema#", "title": "Struct", "type": "object", - "required": [ - "contains_str1", - "contains_str2", - "email_address", - "homepage", - "map_contains", - "min_max", - "min_max2", - "non_empty_str", - "non_empty_str2", - "pair", - "regex_str1", - "regex_str2", - "regex_str3", - "required_option", - "tel", - "x" - ], "properties": { - "min_max": { - "type": "number", - "format": "float", - "maximum": 100.0, - "minimum": 0.01 - }, - "min_max2": { - "type": "number", - "format": "float", - "maximum": 1000.0, - "minimum": 1.0 - }, - "regex_str1": { - "type": "string", - "pattern": "^[Hh]ello\\b" - }, - "regex_str2": { - "type": "string", - "pattern": "^[Hh]ello\\b" - }, - "regex_str3": { - "type": "string", - "pattern": "^\\d+$" - }, "contains_str1": { "type": "string", "pattern": "substring\\.\\.\\." @@ -57,14 +15,31 @@ "type": "string", "format": "email" }, - "tel": { - "type": "string", - "format": "phone" - }, "homepage": { "type": "string", "format": "uri" }, + "map_contains": { + "type": "object", + "additionalProperties": { + "type": "null" + }, + "required": [ + "map_key" + ] + }, + "min_max": { + "type": "number", + "format": "float", + "maximum": 100.0, + "minimum": 0.01 + }, + "min_max2": { + "type": "number", + "format": "float", + "maximum": 1000.0, + "minimum": 1.0 + }, "non_empty_str": { "type": "string", "maxLength": 100, @@ -84,21 +59,46 @@ "maxItems": 2, "minItems": 2 }, - "map_contains": { - "type": "object", - "required": [ - "map_key" - ], - "additionalProperties": { - "type": "null" - } + "regex_str1": { + "type": "string", + "pattern": "^[Hh]ello\\b" + }, + "regex_str2": { + "type": "string", + "pattern": "^[Hh]ello\\b" + }, + "regex_str3": { + "type": "string", + "pattern": "^\\d+$" }, "required_option": { "type": "boolean" }, + "tel": { + "type": "string", + "format": "phone" + }, "x": { "type": "integer", "format": "int32" } - } + }, + "required": [ + "contains_str1", + "contains_str2", + "email_address", + "homepage", + "map_contains", + "min_max", + "min_max2", + "non_empty_str", + "non_empty_str2", + "pair", + "regex_str1", + "regex_str2", + "regex_str3", + "required_option", + "tel", + "x" + ] } \ No newline at end of file diff --git a/schemars/tests/expected/validate_inner.json b/schemars/tests/expected/validate_inner.json index 443a9fa..ffe6792 100644 --- a/schemars/tests/expected/validate_inner.json +++ b/schemars/tests/expected/validate_inner.json @@ -2,15 +2,6 @@ "$schema": "http://json-schema.org/draft-07/schema#", "title": "Struct", "type": "object", - "required": [ - "array_str_length", - "slice_str_contains", - "vec_i32_range", - "vec_str_length", - "vec_str_length2", - "vec_str_regex", - "vec_str_url" - ], "properties": { "array_str_length": { "type": "array", @@ -70,5 +61,14 @@ "format": "uri" } } - } + }, + "required": [ + "array_str_length", + "slice_str_contains", + "vec_i32_range", + "vec_str_length", + "vec_str_length2", + "vec_str_regex", + "vec_str_url" + ] } \ No newline at end of file diff --git a/schemars/tests/expected/validate_schemars_attrs.json b/schemars/tests/expected/validate_schemars_attrs.json index 86658ac..438b4aa 100644 --- a/schemars/tests/expected/validate_schemars_attrs.json +++ b/schemars/tests/expected/validate_schemars_attrs.json @@ -2,49 +2,7 @@ "$schema": "http://json-schema.org/draft-07/schema#", "title": "Struct2", "type": "object", - "required": [ - "contains_str1", - "contains_str2", - "email_address", - "homepage", - "map_contains", - "min_max", - "min_max2", - "non_empty_str", - "non_empty_str2", - "pair", - "regex_str1", - "regex_str2", - "regex_str3", - "required_option", - "tel", - "x" - ], "properties": { - "min_max": { - "type": "number", - "format": "float", - "maximum": 100.0, - "minimum": 0.01 - }, - "min_max2": { - "type": "number", - "format": "float", - "maximum": 1000.0, - "minimum": 1.0 - }, - "regex_str1": { - "type": "string", - "pattern": "^[Hh]ello\\b" - }, - "regex_str2": { - "type": "string", - "pattern": "^[Hh]ello\\b" - }, - "regex_str3": { - "type": "string", - "pattern": "^\\d+$" - }, "contains_str1": { "type": "string", "pattern": "substring\\.\\.\\." @@ -57,14 +15,31 @@ "type": "string", "format": "email" }, - "tel": { - "type": "string", - "format": "phone" - }, "homepage": { "type": "string", "format": "uri" }, + "map_contains": { + "type": "object", + "additionalProperties": { + "type": "null" + }, + "required": [ + "map_key" + ] + }, + "min_max": { + "type": "number", + "format": "float", + "maximum": 100.0, + "minimum": 0.01 + }, + "min_max2": { + "type": "number", + "format": "float", + "maximum": 1000.0, + "minimum": 1.0 + }, "non_empty_str": { "type": "string", "maxLength": 100, @@ -84,21 +59,46 @@ "maxItems": 2, "minItems": 2 }, - "map_contains": { - "type": "object", - "required": [ - "map_key" - ], - "additionalProperties": { - "type": "null" - } + "regex_str1": { + "type": "string", + "pattern": "^[Hh]ello\\b" + }, + "regex_str2": { + "type": "string", + "pattern": "^[Hh]ello\\b" + }, + "regex_str3": { + "type": "string", + "pattern": "^\\d+$" }, "required_option": { "type": "boolean" }, + "tel": { + "type": "string", + "format": "phone" + }, "x": { "type": "integer", "format": "int32" } - } + }, + "required": [ + "contains_str1", + "contains_str2", + "email_address", + "homepage", + "map_contains", + "min_max", + "min_max2", + "non_empty_str", + "non_empty_str2", + "pair", + "regex_str1", + "regex_str2", + "regex_str3", + "required_option", + "tel", + "x" + ] } \ No newline at end of file