Avatar ·

¿Cómo incluir condicionalmente atributos como `#[derive]` en Rust?

¡Hola a todos! Estoy aprendiendo Rust y me encontré con una situación donde necesito que una estructura implemente automáticamente el trait `Debug` solo en modo de depuración (debug build), pero no en la compilación de release. Conozco `#[cfg(debug_assertions)]`, que permite compilar condicionalmente bloques de código. Pero, ¿cómo aplico esto a atributos, especialmente a `#[derive]`? Aquí hay un ejemplo que no funciona: ```rust #[cfg(debug_assertions)] #[derive(Debug)] struct MyStruct { value: i32, } ``` El compilador se queja de que el atributo `derive` no puede ser condicional. Probé diferentes variantes: poner `cfg` después de `derive`, usar atributos anidados, nada funciona. Encontré discusiones similares en foros en inglés, pero son antiguas (2016–2018). ¿Quizás algo ha cambiado desde entonces? ¿O hay una solución alternativa? La tarea concreta: en modo debug quiero ver `{:?}` para la estructura, y en release no quiero pagar por código extra. Indíquenme cómo hacerlo correctamente en Rust moderno (edition 2021). Gracias de antemano.