schemars/json_schema_impls/
std_time.rs

1use crate::SchemaGenerator;
2use crate::{json_schema, JsonSchema, Schema};
3use alloc::borrow::Cow;
4
5impl JsonSchema for core::time::Duration {
6    fn schema_name() -> Cow<'static, str> {
7        "Duration".into()
8    }
9
10    fn schema_id() -> Cow<'static, str> {
11        "std::time::Duration".into()
12    }
13
14    fn json_schema(generator: &mut SchemaGenerator) -> Schema {
15        json_schema!({
16            "type": "object",
17            "required": ["secs", "nanos"],
18            "properties": {
19                "secs": u64::json_schema(generator),
20                "nanos": u32::json_schema(generator),
21            }
22        })
23    }
24}
25
26#[cfg(feature = "std")]
27impl JsonSchema for std::time::SystemTime {
28    fn schema_name() -> Cow<'static, str> {
29        "SystemTime".into()
30    }
31
32    fn schema_id() -> Cow<'static, str> {
33        "std::time::SystemTime".into()
34    }
35
36    fn json_schema(generator: &mut SchemaGenerator) -> Schema {
37        json_schema!({
38            "type": "object",
39            "required": ["secs_since_epoch", "nanos_since_epoch"],
40            "properties": {
41                "secs_since_epoch": u64::json_schema(generator),
42                "nanos_since_epoch": u32::json_schema(generator),
43            }
44        })
45    }
46}