Skip to main content

ALL_ENV

Constant ALL_ENV 

Source
pub const ALL_ENV: &[&str];
Expand description

Every environment variable this crate reads outside its tests, in one place, so a consumer that carries them across a process or container boundary can assert its list against this one instead of against a count it remembers.

§Why a list, and why here

gunnar’s forge runs gunnar serve inside a podman container, and podman passes nothing implicitly: a variable set on the host reaches the server only if the forge names it in its crossing list. On 2026-08-11 five separate wrong conclusions were drawn on one box from knobs that were “set” and never arrived — the server ran on its default and the probe reported “no effect”, a null result shaped exactly like a real one. The forge’s own list was three entries long against a crate that read four keys, and nothing went red when this crate grew a key, because the only list that looked was the consumer’s.

This is the producer’s list. It is the one a consumer asserts against — “my crossing list plus my named exclusions equals ALL_ENV” — so the day this crate grows a ninth key, the consumer’s guard is what says so, and the failure names the key rather than producing a quiet default.

§It is asserted complete, not trusted

every_environment_read_in_this_crate_is_named_in_all_env (in this module’s tests) walks the crate’s own source and checks that every std::env::var call outside a #[cfg(test)] region names a key on this list — by literal or by one of the ENV_* constants above. Grow a read without growing the list and that test is what goes red.

Three of the eight are arms (they select an implementation and change what the store promises); the other five are knobs and ceilings that select nothing. StoreConfig holds the arms and the cache ceiling, and its Display prints those four; the remaining four are per-process knobs that never vary between two stores in one process.