Crates.io | env_ast |
lib.rs | env_ast |
version | 1.0.0 |
source | src |
created_at | 2022-02-08 15:58:24.566074 |
updated_at | 2022-02-08 15:58:24.566074 |
description | env! but it outputs tokens instead of a string literal |
homepage | |
repository | https://github.com/WilliamVenner/env_ast |
max_upload_size | |
id | 529185 |
size | 7,249 |
Dead simple procedural macro that mimics env!
but outputs AST tokens instead of a string literal.
WARNING: This macro is potentially DANGEROUS and can introduce arbitrary code execution (ACE) if used improperly. If you need this macro, make sure you REALLY need it.
Simply add to your Cargo.toml file:
[dependencies]
env_ast = "*"
And in your code:
#[macro_use] extern crate env_ast;
fn it_works() {}
fn default_works() {}
fn main() {
env_ast!("MY_ENV_VAR")(); // For this to compile, MY_ENV_VAR must be set to `it_works` at build time
env_ast!("ENV_VAR_THAT_IS_NOT_SET", default_works)(); // You can provide a default set of tokens if the environment variable is not found
}