# env-smart
[](https://github.com/DoumanAsh/env-smart/actions/workflows/rust.yml)
[](https://crates.io/crates/env-smart)
[](https://docs.rs/crate/env-smart/)
Improved version of `env!` macro from std.
## Syntax:
- Standard `env!` - If plain string specified then behavior is the same as standard [env](https://doc.rust-lang.org/std/macro.env.html) 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
```rust
use env_smart::env;
static USER_AGENT: &str = env!("{CARGO_PKG_NAME}-{CARGO_PKG_VERSION}");
assert_eq!(USER_AGENT, "env-smart-1.0.0");
```