Rust propone rasgos Move y Forget para permitir tipos no movibles y destructores garantizados

Fuentes: Rust proposes Move and Forget traits to enable immobile types and guaranteed destructors

El equipo del lenguaje de programación Rust trabaja en una propuesta para introducir nuevos rasgos que describan de forma explícita qué operaciones son posibles sobre un tipo. Hoy Rust asume que cualquier valor puede moverse en memoria y puede "olvidarse" con mem::forget, lo que impide ciertos patrones seguros. La iniciativa plantea tres rasgos automáticos inseguros: Move (el tipo puede reubicarse), Destruct (puede liberarse implícitamente) y Forget (puede olvidarse sin ejecutar el destructor). Un tipo que implemente !Move debe conservar una dirección estable durante toda su vida, lo que resuelve de forma más limpia los problemas de auto-referencialidad que hoy intenta cubrir Pin. Un tipo !Forget garantiza que su destructor siempre se ejecutará, lo que habilita patrones como el "scoped spawn" seguro para asincronía: el identificador de la tarea ejecuta join al salir del ámbito y, al no poder olvidarse, el join queda garantizado. La propuesta se inspira en el trabajo previo de la jerarquía Sized, que relajó la asunción de que todos los tipos tienen tamaño conocido en compilación. Se plantea como alternativa al objetivo de 2025H2 sobre ergonomía de Pin, con la ambición de deprecar Pin a largo plazo. La implementación se desarrollará entre 2026 y 2027 con MVPs en el compilador, RFCs y validación en el kernel de Linux. Quedan fuera del alcance los cambios al rasgo Future, que dependen de Pin y se abordarán como proyecto aparte.