3 ms·
The functions are pure but they take an input from a built-in (looks like a macro) that reads the environment variable at compile time. Also, you only compile
by kzrdude 2y ago
The functions are pure but they take an input from a built-in (looks like a macro) that reads the environment variable at compile time.
Also, you only compile once, so how could you tell the difference? You could say - if it was using const fn that it's a "templated" function that depends on compile time settings.
- Zambyte 2y agoI see, I guess if you can't set environment variables during build time that makes it pure-ish enough.
- vlovich123 2y agoYou can set environment variables in your build.rs / the user sets it like A=b cargo build.
- dwattttt 2y agoThere's two lookups that can occur, distinguishing them makes it clearer. Looking up the value of an environment variable at runtime is not a const operation, and produces an error if you try to do it in a const fn. Looking up the value of an environment variable during compile time _can_ be done in a const context, but it'll only happen once. The environment should be considered an input to a const fn, and that makes it "pure". EDIT: These two operations can both be done in non-const functions too, they're different functions (well, one's a macro).