#env #proc-macro #string-literal #macro #literals #tokens #outputs

env_ast

env! 但它输出的是令牌而不是字符串字面量

1 个稳定版本

1.0.0 2022年2月8日

#38 in #outputs

MIT 许可证

7KB
63

crates.io docs.rs license

env_ast

这是一个简单的过程宏,模仿 env! 但输出 AST 令牌而不是字符串字面量。

警告:此宏可能具有潜在的危险性,如果使用不当可能会引入任意代码执行 (ACE)。如果您需要此宏,请确保您确实需要它。

用法

只需将其添加到您的 Cargo.toml 文件中

[dependencies]
env_ast = "*"

并在您的代码中

#[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
}

依赖项

~1.5MB
~34K SLoC