Expand description
Duration from "30s", "1h30m", "500ms", or a bare number of seconds.
Units: ms, s, m, h, d. Several may be concatenated, largest first
by convention but in any order in practice — "1h30m" is 90 minutes.
use std::time::Duration;
use serde::Deserialize;
#[derive(Deserialize)]
struct Config {
#[serde(with = "dynamic_config::duration")]
timeout: Duration,
#[serde(default, with = "dynamic_config::duration::option")]
grace: Option<Duration>,
}Strict about nonsense: an unknown unit or a bare - is an error naming what
was expected, never a silent zero.
Modules§
- option
- The same, for
Option<Duration>.
Functions§
- deserialize
#[serde(with = "dynamic_config::duration")]- parse
- Parses a duration string.
- serialize
- Round-trips as the millisecond count, so a written config stays valid.