use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub enum SchemaVersion {
Draft7,
Draft2019_09,
Draft2020_12,
}
impl SchemaVersion {
pub fn uri(&self) -> &'static str {
match self {
Self::Draft7 => "http://json-schema.org/draft-07/schema#",
Self::Draft2019_09 => "https://json-schema.org/draft/2019-09/schema",
Self::Draft2020_12 => "https://json-schema.org/draft/2020-12/schema",
}
}
pub fn definitions_key(&self) -> &'static str {
match self {
Self::Draft7 => "definitions",
Self::Draft2019_09 | Self::Draft2020_12 => "$defs",
}
}
}
impl Default for SchemaVersion {
fn default() -> Self {
Self::Draft7
}
}