fleetforge_common/
step_schema.rs1use std::sync::OnceLock;
2
3use jsonschema::JSONSchema;
4use serde_json::Value;
5
6pub fn step_schema() -> &'static JSONSchema {
8 static STEP_SCHEMA: OnceLock<JSONSchema> = OnceLock::new();
9 STEP_SCHEMA.get_or_init(|| compile_schema())
10}
11
12fn compile_schema() -> JSONSchema {
13 let schema_value: Value = serde_json::from_str(crate::schemas::STEP_SCHEMA_JSON)
14 .expect("embedded step schema JSON must be valid");
15 JSONSchema::compile(&schema_value)
16 .expect("embedded step schema JSON must compile under draft 2020-12")
17}