Limitations de la macro `#[derive]` de Rust et solutions alternatives

2025-07-08
Limitations de la macro `#[derive]` de Rust et solutions alternatives

La macro `#[derive]` de Rust, lors de la génération d'implémentations pour des traits comme `Clone`, exige que tous les paramètres génériques implémentent également `Clone`. Cela limite son applicabilité. L'article analyse deux exemples montrant pourquoi cette restriction empêche la compilation du code. L'auteur propose deux solutions : soumettre un RFC pour modifier le comportement du compilateur et écrire une macro personnalisée pour contourner la limitation. L'auteur opte pour la seconde solution, prévoyant d'implémenter des macros `derive` plus flexibles dans le crate `derive_more` ou dans un crate qu'il créera lui-même pour résoudre ce problème.

Développement