diff --git a/core/market/src/config.rs b/core/market/src/config.rs index 311c075f1a..7f0492df33 100644 --- a/core/market/src/config.rs +++ b/core/market/src/config.rs @@ -23,7 +23,9 @@ pub struct DiscoveryConfig { pub mean_cyclic_unsubscribes_interval: Duration, } +#[derive(StructOpt)] pub struct SubscriptionConfig { + #[structopt(env = "DEFAULT_SUBSCRIPTION_TTL", parse(try_from_str = parse_chrono_duration), default_value = "1h")] pub default_ttl: chrono::Duration, } @@ -68,3 +70,7 @@ impl Default for EventsConfig { } } } + +fn parse_chrono_duration(s: &str) -> Result { + Ok(chrono::Duration::from_std(humantime::parse_duration(s)?)?) +}