diff --git a/typify-impl/src/convert.rs b/typify-impl/src/convert.rs
index 4decc332..22395eef 100644
--- a/typify-impl/src/convert.rs
+++ b/typify-impl/src/convert.rs
@@ -1619,6 +1619,25 @@ impl TypeSpace {
Ok((type_entry, metadata))
}
+ // The permissive schema is equivalent to the `true` schema.
+ Schema::Object(SchemaObject {
+ metadata: _,
+ instance_type: None,
+ format: None,
+ enum_values: None,
+ const_value: None,
+ subschemas: None,
+ number: None,
+ string: None,
+ array: None,
+ object: None,
+ reference: None,
+ extensions: _,
+ }) => {
+ let (type_entry, _) = self.convert_schema(type_name, &Schema::Bool(false))?;
+ Ok((type_entry, metadata))
+ }
+
// An explicit type and enumerated values.
Schema::Object(
schema @ SchemaObject {
diff --git a/typify/tests/schemas/various-enums.json b/typify/tests/schemas/various-enums.json
index 355d48c2..f8a96958 100644
--- a/typify/tests/schemas/various-enums.json
+++ b/typify/tests/schemas/various-enums.json
@@ -168,6 +168,9 @@
"NeverEver": {
"not": true
},
+ "NeverEverForever": {
+ "not": {}
+ },
"AnyOfNothing": {
"enum": []
},
diff --git a/typify/tests/schemas/various-enums.rs b/typify/tests/schemas/various-enums.rs
index c6f1b903..e092cf8e 100644
--- a/typify/tests/schemas/various-enums.rs
+++ b/typify/tests/schemas/various-enums.rs
@@ -938,6 +938,33 @@ impl ::std::convert::From<&Self> for NeverEver {
value.clone()
}
}
+#[doc = "`NeverEverForever`"]
+#[doc = r""]
+#[doc = r" JSON schema
"]
+#[doc = r""]
+#[doc = r" ```json"]
+#[doc = "false"]
+#[doc = r" ```"]
+#[doc = r" "]
+#[derive(
+ :: serde :: Deserialize,
+ :: serde :: Serialize,
+ Clone,
+ Copy,
+ Debug,
+ Eq,
+ Hash,
+ Ord,
+ PartialEq,
+ PartialOrd,
+)]
+#[serde(deny_unknown_fields)]
+pub enum NeverEverForever {}
+impl ::std::convert::From<&Self> for NeverEverForever {
+ fn from(value: &NeverEverForever) -> Self {
+ value.clone()
+ }
+}
#[doc = "`NullStringEnumWithUnknownFormat`"]
#[doc = r""]
#[doc = r" JSON schema
"]