كيفية تضمين السمات مثل `#[derive]` بشكل شرطي في Rust؟
مرحباً بالجميع! أنا أتعلم Rust وواجهت موقفاً حيث أحتاج إلى أن يقوم الهيكل (struct) تلقائياً بتنفيذ trait `Debug` فقط في وضع التصحيح (debug build)، أما في بناء الإصدار (release build) فلا. أعرف عن `#[cfg(debug_assertions)]` الذي يسمح بتجميع كتل الكود بشكل شرطي. لكن كيف يمكن تطبيق ذلك على السمات (attributes)، خاصة `#[derive]`؟
إليك مثال لا يعمل:
```rust
#[cfg(debug_assertions)]
#[derive(Debug)]
struct MyStruct {
value: i32,
}
```
المترجم يشتكي من أن attribute `derive` لا يمكن أن يكون شرطياً. جربت خيارات مختلفة: وضع `cfg` بعد `derive`، استخدام سمات متداخلة (nested attributes) — ولم يساعد شيء.
وجدت مناقشات مشابهة في منتديات باللغة الإنجليزية، لكنها قديمة (2016–2018). ربما تغير شيء منذ ذلك الحين؟ أو هل هناك حل بديل؟