Crates.io | envparse |
lib.rs | envparse |
version | 0.1.0 |
created_at | 2024-12-01 00:11:23.209453+00 |
updated_at | 2024-12-01 00:11:23.209453+00 |
description | Parse compile-time environment variables into `const`s |
homepage | https://github.com/thomcc/envparse |
repository | https://github.com/thomcc/envparse |
max_upload_size | |
id | 1467071 |
size | 78,234 |
envparse
Quick and dirty crate for parsing values out of an environment var provided at compile time. See also: docs.
Here's an example
const MAX_LEN: usize = envparse::parse_env!("MYCRATE_MAX_THING_LEN" as usize else 64);
struct Thing {
len: [u8; MAX_LEN],
}
You can bound by ranges too. This one will fail because the
MUST_BE_USER_PROVIDED
var isn't provided.
const MAX_LEN_LOG2: u32 = envparse::parse_env!("MYCRATE_MAX_LEN_LOG2" as u32 in 0..32);
const MAX_LEN: usize = 1 << MAX_LEN_LOG2;
struct Thing {
len: [u8; MAX_LEN],
}
You can also try
const MAX_LEN_LOG2: u32 = match envparse::parse_env!(try "OPTIONAL_MAX_LEN_LOG2" as u32 in 0..32) {
Some(v) => v,
None => 5,
}
const MAX_LEN: usize = 1 << MAX_LEN_LOG2;
struct Thing {
len: [u8; MAX_LEN],
}