diff --git a/proxmox/Cargo.toml b/proxmox/Cargo.toml index dea5ca02..c98f6df1 100644 --- a/proxmox/Cargo.toml +++ b/proxmox/Cargo.toml @@ -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"] } diff --git a/proxmox/src/tools/serde.rs b/proxmox/src/tools/serde.rs index b96ba609..b8d4a13f 100644 --- a/proxmox/src/tools/serde.rs +++ b/proxmox/src/tools/serde.rs @@ -1,57 +1,5 @@ //! Serialization helpers for serde -/// Serialize DateTime 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, -/// } -/// -/// 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(time: &DateTime, serializer: S) -> Result - 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, D::Error> - where - D: Deserializer<'de>, - Tz: TimeZone, - DateTime: std::str::FromStr, - as std::str::FromStr>::Err: std::string::ToString, - { - use serde::de::Error; - String::deserialize(deserializer).and_then(|string| { - string - .parse::>() - .map_err(|err| Error::custom(err.to_string())) - }) - } -} - /// Serialize Unix epoch (i64) as RFC3339. /// /// Usage example: