[英]Equivalent of -DPREPROC_VAR for rust/cargo
我有一個const
變量,我需要在運行時對其進行硬編碼,但可在編譯時對其進行配置。 在 C/C++ 風格的預處理器中,通常可以告訴編譯-DPREPROC_VAR
並使用#ifndef
來保護定義
#ifndef MAX_TRHEADS
#define MAX_THREADS 1000
#endif
在 rust 我有
// Doesn't actually work because I need a usize and `env!` returns `&str`
const MAX_THREADS: usize = std::env!("MYLIB_MAX_THREADS");
但我不知道如何為它設置默認值。 我嘗試在MYLIB_MAX_THREADS
的[env]
部分設置 MYLIB_MAX_THREADS 但它沒有用。
env!
要求變量在這里,所以有一個默認值是沒有意義的。 但是option_env!
這可能是有道理的:
const MAX_THREADS: &'static str = {
if let Some(x) = std::option_env!("MYLIB_MAX_THREADS") {
x
} else {
"42"
}
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.