miniexcel 0.1.0

Experimental Rust XLSX reader and writer for MiniExcel
Documentation
use chrono::{Duration, NaiveDate, NaiveDateTime, NaiveTime};
use serde::Serializer;
use serde::de::{Deserializer, Error as _};

pub fn deserialize_date<'de, D>(deserializer: D) -> std::result::Result<NaiveDate, D::Error>
where
    D: Deserializer<'de>,
{
    calamine::deserialize_as_date_or_string(deserializer)?.map_err(D::Error::custom)
}

pub fn deserialize_datetime<'de, D>(deserializer: D) -> std::result::Result<NaiveDateTime, D::Error>
where
    D: Deserializer<'de>,
{
    calamine::deserialize_as_datetime_or_string(deserializer)?.map_err(D::Error::custom)
}

pub fn deserialize_time<'de, D>(deserializer: D) -> std::result::Result<NaiveTime, D::Error>
where
    D: Deserializer<'de>,
{
    calamine::deserialize_as_time_or_string(deserializer)?.map_err(D::Error::custom)
}

pub fn deserialize_duration<'de, D>(deserializer: D) -> std::result::Result<Duration, D::Error>
where
    D: Deserializer<'de>,
{
    calamine::deserialize_as_duration_or_string(deserializer)?.map_err(D::Error::custom)
}

pub fn serialize_date_to_excel<S>(
    value: &NaiveDate,
    serializer: S,
) -> std::result::Result<S::Ok, S::Error>
where
    S: Serializer,
{
    rust_xlsxwriter::utility::serialize_datetime_to_excel(value, serializer)
}

pub fn serialize_datetime_to_excel<S>(
    value: &NaiveDateTime,
    serializer: S,
) -> std::result::Result<S::Ok, S::Error>
where
    S: Serializer,
{
    rust_xlsxwriter::utility::serialize_datetime_to_excel(value, serializer)
}

pub fn serialize_time_to_excel<S>(
    value: &NaiveTime,
    serializer: S,
) -> std::result::Result<S::Ok, S::Error>
where
    S: Serializer,
{
    rust_xlsxwriter::utility::serialize_datetime_to_excel(value, serializer)
}