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"]