#macro #env-var #no-alloc

无std env_id

使用环境变量作为标识符

1 个不稳定版本

0.0.1 2023年11月21日

#192#宏


用于 build_assert

MIT/Apache

6KB
80

env_id

使用环境变量作为标识符。

用法

通过运行 env_idcargo addenv_id 添加到您的项目中

cargo add env_id

示例

let env_id!("CARGO_CRATE_NAME") = 1;
dbg!(env_id!("CARGO_CRATE_NAME"));

或者您也可以提供一个默认值

let env_id!("HELLO" ?: hello) = 1;
dbg!(env_id!("HELLO" ?: hello));

这可能在您想让用户指定公共项的名称但以下代码无法编译时很有用

pub const env_id!("HELLO" ?: hello): usize = 1;

您可以使用另一个宏来完成相同的事情

macro_rules! def_const {
  ($id:ident) => {
    pub const $id: usize = 1;
  };
}

env_id!("HELLO"?: hello => def_const);

许可证

版权(C)2023 MaxXing。根据您的选择,许可为Apache 2.0或MIT。


lib.rs:

使用环境变量作为标识符。

示例

let env_id!("CARGO_CRATE_NAME") = 1;
dbg!(env_id!("CARGO_CRATE_NAME"));

或者您也可以提供一个默认值

let env_id!("HELLO" ?: hello) = 1;
dbg!(env_id!("HELLO" ?: hello));

这可能在您想让用户指定公共项的名称但以下代码无法编译时很有用

pub const env_id!("HELLO" ?: hello): usize = 1;

您可以使用另一个宏来完成相同的事情

macro_rules! def_const {
  ($id:ident) => {
    pub const $id: usize = 1;
  };
}

env_id!("HELLO"?: hello => def_const);

依赖

~260–700KB
~17K SLoC