1use super::error::SchemaError;
4use super::model::Document;
5
6pub fn parse(src: &str, src_name: &str) -> Result<Document, SchemaError> {
7 let doc: Document =
8 serde_json::from_str(src).map_err(|e| SchemaError::from_json(&e, src_name, src))?;
9 match super::model::unsupported_version(doc.version) {
10 Some(message) => Err(SchemaError::Version { message }),
11 None => Ok(doc),
12 }
13}
14
15#[expect(clippy::expect_used)]
16pub fn format(doc: &Document) -> String {
17 serde_json::to_string_pretty(doc).expect("schema document serializes to JSON")
18}