Avatar ·

¿Se puede en Rust extender una estructura existente conservando todos sus campos?

¡Hola! Acabo de empezar a aprender Rust después de C++ y Java, y tengo un problema. En C++ podía hacer esto: ```cpp struct Base { int x; int y; }; struct Derived : Base { int z; }; ``` Y todos los campos de Base pasaban automáticamente a Derived. En Java ocurre lo mismo con la herencia de clases. En Rust intenté hacer algo similar: ```rust struct Base { x: i32, y: i32, } struct Derived { // quiero que aquí estén x e y de Base z: i32, } ``` Pero el compilador se queja de que no declaré los campos x e y. Entiendo que en Rust no hay herencia en el sentido clásico, pero necesito reutilizar los campos de una estructura en otra. Me parece que copiar y pegar todos los campos es una práctica horrible. ¡Imagina que Base tiene 20 campos y quiero hacer 5 "herederos" diferentes — eso serían cientos de líneas de código repetitivo! He oído hablar de los traits, pero parecen ser solo para métodos, no para datos. ¿Hay alguna forma de hacer composición o delegación que...