remove chrono dependency and related code

This commit is contained in:
Dietmar Maurer 2020-09-14 13:38:53 +02:00
parent 3efc4d244b
commit c295aa961c
2 changed files with 0 additions and 53 deletions

View File

@ -20,7 +20,6 @@ nix = "0.16"
# tools module:
base64 = "0.12"
chrono = "0.4"
endian_trait = { version = "0.6", features = ["arrays"] }
regex = "1.2"
serde = { version = "1.0", features = ["derive"] }

View File

@ -1,57 +1,5 @@
//! Serialization helpers for serde
/// Serialize DateTime<Local> as RFC3339.
///
/// Usage example:
/// ```
/// # use proxmox::tools;
///
/// use chrono::{DateTime, TimeZone, Utc};
/// use serde::{Deserialize, Serialize};
///
/// # #[derive(Debug)]
/// #[derive(Deserialize, PartialEq, Serialize)]
/// struct Foo {
/// #[serde(with = "proxmox::tools::serde::date_time_as_rfc3339")]
/// date: DateTime<Utc>,
/// }
///
/// let obj = Foo { date: Utc.timestamp_millis(86400000) }; // random test value
/// let json = serde_json::to_string(&obj).unwrap();
/// assert_eq!(json, r#"{"date":"1970-01-02T00:00:00+00:00"}"#);
///
/// let deserialized: Foo = serde_json::from_str(&json).unwrap();
/// assert_eq!(obj, deserialized);
/// ```
pub mod date_time_as_rfc3339 {
use chrono::{DateTime, TimeZone};
use serde::{Deserialize, Deserializer, Serializer};
pub fn serialize<S, Tz>(time: &DateTime<Tz>, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
Tz: TimeZone,
Tz::Offset: std::fmt::Display,
{
serializer.serialize_str(&time.to_rfc3339())
}
pub fn deserialize<'de, D, Tz>(deserializer: D) -> Result<DateTime<Tz>, D::Error>
where
D: Deserializer<'de>,
Tz: TimeZone,
DateTime<Tz>: std::str::FromStr,
<DateTime<Tz> as std::str::FromStr>::Err: std::string::ToString,
{
use serde::de::Error;
String::deserialize(deserializer).and_then(|string| {
string
.parse::<DateTime<Tz>>()
.map_err(|err| Error::custom(err.to_string()))
})
}
}
/// Serialize Unix epoch (i64) as RFC3339.
///
/// Usage example: