macro_rules! required {
($key:literal $(,)?) => { ... };
($key:literal, $msg:expr $(,)?) => { ... };
($key:literal => $t:ty $(,)?) => { ... };
($key:literal => $t:ty, $msg:expr $(,)?) => { ... };
([$($key:literal),+ $(,)?] $(,)?) => { ... };
([$($key:literal),+ $(,)?], $msg:expr $(,)?) => { ... };
() => { ... };
($($anything:tt)+) => { ... };
}Expand description
Read and validate required environment variables.
§Single env var (String)
use env_required::required;
let database_url = required!("DATABASE_URL");§Parse via FromStr
use env_required::required;
let port: u16 = required!("PORT" => u16);
let workers: usize = required!("WORKERS" => _); // `_` lets the compiler infer the type.§Validate multiple variables (no boilerplate)
use env_required::required;
required!(["DATABASE_URL", "PORT", "RUST_LOG"]);§Custom message
use env_required::required;
let token = required!("API_TOKEN", "API_TOKEN is required to call Example API");
required!(["DATABASE_URL", "PORT"], "missing configuration for my-service");