Skip to content

env! but it outputs tokens instead of a string literal

License

Notifications You must be signed in to change notification settings

WilliamVenner/env_ast

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

crates.io docs.rs license

env_ast

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.

Usage

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
}