vector_config/external/
chrono.rs1use std::cell::RefCell;
2
3use chrono::{DateTime, TimeZone};
4use serde_json::Value;
5
6use crate::{
7 schema::{generate_string_schema, SchemaGenerator, SchemaObject},
8 Configurable, GenerateError, Metadata, ToValue,
9};
10
11impl<TZ> Configurable for DateTime<TZ>
12where
13 TZ: TimeZone,
14{
15 fn metadata() -> Metadata {
16 let mut metadata = Metadata::default();
17 metadata.set_description("ISO 8601 combined date and time with timezone.");
18 metadata
19 }
20
21 fn generate_schema(_: &RefCell<SchemaGenerator>) -> Result<SchemaObject, GenerateError> {
22 Ok(generate_string_schema())
23 }
24}
25
26impl<TZ> ToValue for DateTime<TZ>
27where
28 Self: ToString,
29 TZ: TimeZone,
30{
31 fn to_value(&self) -> Value {
32 Value::String(self.to_string())
33 }
34}