Einschränkungen des Rust `#[derive]`-Makros und alternative Lösungen

2025-07-08
Einschränkungen des Rust `#[derive]`-Makros und alternative Lösungen

Das Rust `#[derive]`-Makro erfordert bei der Generierung von Implementierungen für Traits wie `Clone`, dass alle generischen Parameter ebenfalls `Clone` implementieren. Dies schränkt seine Anwendbarkeit ein. Der Artikel analysiert zwei Beispiele, die zeigen, warum diese Einschränkung die Kompilierung des Codes verhindert. Der Autor schlägt zwei Lösungen vor: Einreichen eines RFC zur Änderung des Compilerverhaltens und Schreiben eines benutzerdefinierten Makros zur Umgehung der Einschränkung. Der Autor entscheidet sich für die zweite Lösung und plant, flexiblere `derive`-Makros im `derive_more`-Krate oder in einem selbst erstellten Krate zu implementieren, um dieses Problem zu lösen.

Entwicklung