Comment inclure conditionnellement des attributs comme `#[derive]` en Rust ?
Bonjour à tous ! J'apprends Rust et je suis tombé sur une situation où j'ai besoin qu'une structure implémente automatiquement le trait `Debug` uniquement en mode débogage (debug build), et pas en version release. Je connais `#[cfg(debug_assertions)]`, qui permet de compiler conditionnellement des blocs de code. Mais comment appliquer cela aux attributs, en particulier à `#[derive]` ?
Voici un exemple qui ne fonctionne pas :
```rust
#[cfg(debug_assertions)]
#[derive(Debug)]
struct MyStruct {
value: i32,
}
```
Le compilateur se plaint que l'attribut `derive` ne peut pas être conditionnel. J'ai essayé différentes variantes : mettre `cfg` après `derive`, utiliser des attributs imbriqués — rien n'y fait.
J'ai trouvé des discussions similaires sur des forums anglophones, mais elles sont anciennes (2016–2018). Peut-être que quelque chose a changé depuis ? Ou existe-t-il une solution de contournement ?
No answers yet.
Connectez-vous pour laisser une réponse