Module nt_time::serde_with::rfc_2822::option
source · Available on crate features
serde
and serde-human-readable
only.Expand description
Use the well-known RFC 2822 format when serializing and deserializing an
Option<FileTime>
.
Use this module in combination with Serde’s with
attribute.
§Examples
use nt_time::{
serde::{Deserialize, Serialize},
serde_with::rfc_2822,
FileTime,
};
#[derive(Debug, Deserialize, PartialEq, Serialize)]
struct DateTime(#[serde(with = "rfc_2822::option")] Option<FileTime>);
let json = serde_json::to_string(&DateTime(Some(FileTime::UNIX_EPOCH))).unwrap();
assert_eq!(json, r#""Thu, 01 Jan 1970 00:00:00 +0000""#);
assert_eq!(
serde_json::from_str::<DateTime>(&json).unwrap(),
DateTime(Some(FileTime::UNIX_EPOCH))
);
let json = serde_json::to_string(&DateTime(None)).unwrap();
assert_eq!(json, "null");
assert_eq!(
serde_json::from_str::<DateTime>(&json).unwrap(),
DateTime(None)
);
Functions§
- Deserializes an
Option<FileTime>
from the given Serde deserializer. - Serializes an
Option<FileTime>
into the given Serde serializer.