Rust pide pruebas de RFC 3323: restricciones de implementación y mutabilidad

Fuentes: Call for testing: Restricting trait implementability and field mutability

El equipo de Rust abrió una convocatoria de pruebas para el RFC 3323, ya disponible en nightly. La propuesta se divide en dos funcionalidades: impl_restriction y mut_restriction. La primera permite restringir de forma explícita el ámbito en el que un trait puede ser implementado, por ejemplo con la sintaxis pub impl(crate) trait Foo, lo que evita que crates externos creen implementaciones propias. Hasta ahora, este caso se resolvía con el patrón sealed trait, que requiere definir un trait Sealed en un módulo privado como supertrait; la nueva sintaxis ofrece una alternativa más directa y mensajes de error del compilador más claros cuando una implementación se intenta fuera del ámbito permitido. La segunda, mut_restriction, permite acotar dónde puede mutarse un campo, por ejemplo pub mut(crate) alpha: u8, para que sea legible desde fuera pero solo modificable dentro del crate. Funciona también con variantes de enum, uniones y structs en estilo tupla, y aporta una alternativa a los métodos getter, con mejor integración con el borrow checker. Para preservar invariantes, el compilador prohíbe usar expresiones de struct fuera del ámbito si algún campo con mut_restriction no puede mutarse allí. El RFC aún tiene preguntas abiertas, sobre todo de sintaxis. La implementación se realizó como proyecto de Google Summer of Code 2026, con mentoría de Jacob Pratt y Urgau.