Crates.io | env-flags |
lib.rs | env-flags |
version | 0.1.0 |
source | src |
created_at | 2024-10-06 15:34:37.683296 |
updated_at | 2024-10-06 15:34:37.683296 |
description | A convenience macro for declaring environment variables |
homepage | |
repository | https://github.com/kykosic/env-flags |
max_upload_size | |
id | 1399154 |
size | 29,801 |
This library provides a convenient macro for declaring environment variables.
[dependencies]
env-flags = "0.1"
Compiler support: requires rustc 1.80+
use env_flags::env_flags;
use std::time::Duration;
env_flags! {
/// Required env var, panics if missing.
AUTH_TOKEN: &str;
/// Env var with a default value if not specified.
pub(crate) PORT: u16 = 8080;
/// An optional env var.
pub OVERRIDE_HOSTNAME: Option<&str> = None;
/// `Duration` by default is parsed as `f64` seconds.
TIMEOUT: Duration = Duration::from_secs(5);
/// Custom parsing function, takes a `String` and returns a `Result<Duration>`.
TIMEOUT_MS: Duration = Duration::from_millis(30), |value| {
value.parse().map(Duration::from_millis)
};
/// `bool` can be true, false, 1, or 0 (case insensitive)
/// eg. export ENABLE_FEATURE="true"
pub ENABLE_FEATURE: bool = true;
/// `Vec<T>` by default is parsed as a comma-seprated string
/// eg. export VALID_PORTS="80,443,9121"
pub VALID_PORTS: Vec<u16> = vec![80, 443, 9121];
}