Avatar ·

Cómo verificar si un proyecto está compilado en modo debug o release usando cfg en Rust

¡Hola a todos! Acabo de empezar a aprender Rust y estoy tratando de entender la compilación condicional. Necesito que, dependiendo de si compilo el proyecto en modo debug o release, se ejecute código diferente. Por ejemplo, en debug quiero imprimir mucha información de depuración, y en release solo logs mínimos. Sé que en C/C++ hay macros como `#ifdef DEBUG`, pero ¿cómo se hace esto en Rust? He intentado usar `#[cfg(debug_assertions)]`, pero no entiendo del todo cómo funciona. Aquí hay un ejemplo de mi código: ```rust fn main() { #[cfg(debug_assertions)] println!("Debug build"); #[cfg(not(debug_assertions))] println!("Release build"); } ``` Este código funciona, pero he oído que `debug_assertions` puede comportarse de manera inesperada en algunos casos. Por ejemplo, ¿si ejecuto tests o benchmarks? ¿O si compilo con `--release`, eso garantiza que sea release? También he visto menciones sobre `profile = "release"` y `profile = "debug"` en atributos `cfg`. ¿Cuál es la dife