Move root schema definitions into Metadata
This commit is contained in:
parent
c78d721fc5
commit
f38f58d1e8
3 changed files with 6 additions and 5 deletions
|
@ -35,12 +35,13 @@ macro_rules! impl_merge {
|
|||
}
|
||||
|
||||
impl_merge!(SchemaObject {
|
||||
merge: definitions extensions instance_type enum_values
|
||||
merge: extensions instance_type enum_values
|
||||
metadata subschemas number string array object,
|
||||
or: format const_value reference,
|
||||
});
|
||||
|
||||
impl_merge!(Metadata {
|
||||
merge: definitions,
|
||||
or: schema id title description,
|
||||
});
|
||||
|
||||
|
|
|
@ -129,7 +129,7 @@ impl SchemaGenerator {
|
|||
let metadata = schema.metadata.get_or_insert_with(Default::default);
|
||||
metadata.schema = Some("http://json-schema.org/draft-07/schema#".to_owned());
|
||||
metadata.title = Some(T::schema_name());
|
||||
schema.definitions.extend(self.definitions().clone());
|
||||
metadata.definitions.extend(self.definitions().clone());
|
||||
Ok(schema)
|
||||
}
|
||||
|
||||
|
@ -138,7 +138,7 @@ impl SchemaGenerator {
|
|||
let metadata = schema.metadata.get_or_insert_with(Default::default);
|
||||
metadata.schema = Some("http://json-schema.org/draft-07/schema#".to_owned());
|
||||
metadata.title = Some(T::schema_name());
|
||||
schema.definitions.extend(self.into_definitions());
|
||||
metadata.definitions.extend(self.into_definitions());
|
||||
Ok(schema)
|
||||
}
|
||||
|
||||
|
|
|
@ -48,8 +48,6 @@ pub struct SchemaObject {
|
|||
pub enum_values: Option<Vec<Value>>,
|
||||
#[serde(rename = "const", skip_serializing_if = "Option::is_none")]
|
||||
pub const_value: Option<Value>,
|
||||
#[serde(alias = "$defs", skip_serializing_if = "Map::is_empty")]
|
||||
pub definitions: Map<String, Schema>,
|
||||
#[serde(flatten, deserialize_with = "skip_if_default")]
|
||||
pub subschemas: Option<Box<SubschemaValidation>>,
|
||||
#[serde(flatten, deserialize_with = "skip_if_default")]
|
||||
|
@ -126,6 +124,8 @@ pub struct Metadata {
|
|||
pub title: Option<String>,
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
pub description: Option<String>,
|
||||
#[serde(alias = "$defs", skip_serializing_if = "Map::is_empty")]
|
||||
pub definitions: Map<String, Schema>,
|
||||
}
|
||||
|
||||
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Default, JsonSchema)]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue