Limitations de la macro `#[derive]` de Rust et solutions alternatives
2025-07-08
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.
(rgbcu.be)
Développement