#macro #env-var #no-alloc

macro no-std env_id

Use environment variables as identifiers

1 unstable release

0.0.1 Nov 21, 2023

#174 in #macros

37 downloads per month
Used in build_assert

MIT/Apache

6KB
80 lines

env_id

Use environment variables as identifiers.

Usage

Add env_id to your project by running cargo add:

cargo add env_id

Examples

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

Or you can provide a default value:

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

This may be useful when you want to let users specify the name of a public item, but the following code doesn't compile:

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

You can use another macro to do the same thing:

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

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

License

Copyright (C) 2023 MaxXing. Licensed under either of Apache 2.0 or MIT at your option.


lib.rs:

Use environment variables as identifiers.

Examples

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

Or you can provide a default value:

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

This may be useful when you want to let users specify the name of a public item, but the following code doesn't compile:

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

You can use another macro to do the same thing:

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

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

Dependencies

~305–760KB
~18K SLoC