Ответ 1
Вы можете использовать debug_assertions
в качестве соответствующего флага конфигурации. Он работает как с атрибутами #[cfg(...)]
и с cfg!
макрос:
#[cfg(debug_assertions)]
fn example() {
println!("Debugging enabled");
}
#[cfg(not(debug_assertions))]
fn example() {
println!("Debugging disabled");
}
fn main() {
if cfg!(debug_assertions) {
println!("Debugging enabled");
} else {
println!("Debugging disabled");
}
#[cfg(debug_assertions)]
println!("Debugging enabled");
#[cfg(not(debug_assertions))]
println!("Debugging disabled");
example();
}
Этот флаг конфигурации был назван как правильный способ сделать это в этом обсуждении. Больше нет подходящих встроенных условий.
Из ссылки:
debug_assertions
-debug_assertions
по умолчанию при компиляции без оптимизации. Это можно использовать для включения дополнительного кода отладки в разработке, но не в производстве. Например, он управляет поведением стандартной библиотекиdebug_assert!
макро.
Альтернативный, немного более сложный способ - использовать #[cfg(feature = "debug")]
и создать скрипт сборки, который включает функцию "отладки" для вашего ящика, как показано здесь.