specta_jsonschema/
schema_version.rs1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
5pub enum SchemaVersion {
6 Draft7,
8 Draft2019_09,
10 Draft2020_12,
12}
13
14impl SchemaVersion {
15 pub fn uri(&self) -> &'static str {
17 match self {
18 Self::Draft7 => "http://json-schema.org/draft-07/schema#",
19 Self::Draft2019_09 => "https://json-schema.org/draft/2019-09/schema",
20 Self::Draft2020_12 => "https://json-schema.org/draft/2020-12/schema",
21 }
22 }
23
24 pub fn definitions_key(&self) -> &'static str {
27 match self {
28 Self::Draft7 => "definitions",
29 Self::Draft2019_09 | Self::Draft2020_12 => "$defs",
30 }
31 }
32}
33
34impl Default for SchemaVersion {
35 fn default() -> Self {
36 Self::Draft7
37 }
38}