qldb 3.2.9

Driver for Amazon's QLDB Database implemented in pure rust.
Documentation
mod utils;
use eyre::Result;
use ion_binary_rs::IonValue;
use std::collections::HashMap;
use utils::create_type_test;

#[async_std::test]
async fn qldb_type_datetime() -> Result<()> {
    create_type_test(get_value_to_insert_dates(), |values| {
        assert_eq!(
            values.get("2011-01-01T00:00:00+00:00").unwrap(),
            &IonValue::DateTime(chrono::DateTime::parse_from_rfc3339("2011-01-01T00:00:00+00:00").unwrap())
        );
        assert_eq!(
            values.get("2011-02-01T00:00:00+00:00").unwrap(),
            &IonValue::DateTime(chrono::DateTime::parse_from_rfc3339("2011-02-01T00:00:00+00:00").unwrap())
        );
        assert_eq!(
            values.get("2011-02-20T00:00:00+00:00").unwrap(),
            &IonValue::DateTime(chrono::DateTime::parse_from_rfc3339("2011-02-20T00:00:00+00:00").unwrap())
        );
        assert_eq!(
            values.get("2011-02-20T11:30:59.100-08:00").unwrap(),
            &IonValue::DateTime(chrono::DateTime::parse_from_rfc3339("2011-02-20T11:30:59.100-08:00").unwrap())
        );
    })
    .await
}

fn get_value_to_insert_dates() -> IonValue {
    let mut map = HashMap::new();
    map.insert(
        "2011-01-01T00:00:00+00:00".into(),
        IonValue::DateTime(chrono::DateTime::parse_from_rfc3339("2011-01-01T00:00:00+00:00").unwrap()),
    );
    map.insert(
        "2011-02-01T00:00:00+00:00".into(),
        IonValue::DateTime(chrono::DateTime::parse_from_rfc3339("2011-02-01T00:00:00+00:00").unwrap()),
    );
    map.insert(
        "2011-02-20T00:00:00+00:00".into(),
        IonValue::DateTime(chrono::DateTime::parse_from_rfc3339("2011-02-20T00:00:00+00:00").unwrap()),
    );
    map.insert(
        "2011-02-20T11:30:59.100-08:00".into(),
        IonValue::DateTime(chrono::DateTime::parse_from_rfc3339("2011-02-20T11:30:59.100-08:00").unwrap()),
    );
    IonValue::Struct(map)
}