Function spirit::utils::deserialize_opt_duration[][src]

pub fn deserialize_opt_duration<'de, D: Deserializer<'de>>(
    d: D
) -> Result<Option<Duration>, D::Error>
Expand description

Deserialize an Option<Duration> using the humantime crate.

This allows reading human-friendly representations of time, like 30s or 5days. It should be paired with serialize_opt_duration. Also, to act like Option does when deserializing by default, the #[serde(default)] is recommended.

Examples

use std::time::Duration;

use serde::{Deserialize, Serialize};

#[derive(Clone, Debug, Eq, PartialEq, Deserialize, Serialize)]
struct Cfg {
    #[serde(
        serialize_with = "spirit::utils::serialize_opt_duration",
        deserialize_with = "spirit::utils::deserialize_opt_duration",
        default,
    )]
    how_long: Option<Duration>,
}