vector_config/external/
chrono.rs

1use 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}