Crate env_smart

source ·
Expand description

Improved version of env! macro from std.

Syntax:

  • Standard env! - If plain string specified then behavior is the same as standard env macro
  • Simplified formatting - Allows to format string using multiple variables enveloped into {} brackets. Note that bracket escaping is not supported

Sources

Macro fetches environment variables in following order:

  • Use .env file from root where build is run. Duplicate values are not allowed.
  • Use current environment where proc macro runs. It will not override .env variables

Usage

use env_smart::env;

static USER_AGENT: &str = env!("{CARGO_PKG_NAME}-{CARGO_PKG_VERSION}");

assert_eq!(USER_AGENT, "env-smart-1.0.1");

static TEST: &str = env!("test-{CARGO_PKG_NAME}-{CARGO_PKG_VERSION}");

assert_eq!(TEST, "test-env-smart-1.0.1");

assert_eq!(env!("{CARGO_PKG_NAME}"), "env-smart");

assert_eq!(env!("CARGO_PKG_NAME"), "env-smart");

#[cfg(not(windows))]
assert_ne!(env!("PWD"), "PWD");

Macros

  • Inserts env variable