Skip to main content

required

Macro required 

Source
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");