Rust 1.86 añade la capacidad de trait upcasting

La última actualización de Rust 1.86, anunciada el 3 de abril de 2025, trae consigo una nueva característica esperada por muchos: trait upcasting.

Esta mejora permite realizar el upcasting de objetos de trait, lo cual es útil cuando un trait tiene un supertrait.

¿Qué es el Trait Upcasting?

El trait upcasting permite que, si un trait tiene un supertrait, los desarrolladores puedan convertir (o «coaccionar») una referencia a un objeto de trait en una referencia a un objeto de trait de su supertrait.

Esta característica proporciona más flexibilidad en cómo se manejan los objetos de trait, especialmente cuando se usa el trait Any, permitiendo la conversión a dyn Any para invocar métodos como downcast sin necesidad de añadir métodos adicionales o usar crates externos.

Otras Novedades de Rust 1.86

Además del trait upcasting, Rust 1.86 incluye varias mejoras y cambios importantes:

  1. Soporte para indexación mutable múltiple en HashMap y slices: Ahora puedes obtener múltiples referencias mutables a elementos simultáneamente de un HashMap o slice, gracias a la nueva función get_disjoint_mut.
  2. Asertaciones de depuración: El compilador de Rust ahora inserta automáticamente aserciones de depuración para garantizar que los punteros no sean nulos cuando se lean o escriban tamaños no nulos, o cuando se vuelven a tomar como referencias.
  3. Características estables:

    • target_feature_11: Ahora se pueden marcar funciones seguras con el atributo #[target_feature].
    • get_disjoint_mut y get_disjoint_unchecked_mut en slices y HashMap.
    • NonZero::count_ones y otras funciones y métodos estabilizados.
  4. Advertencia por omisión del ABI en bloques extern: Si omites el ABI en bloques extern o funciones (extern fn), ahora obtendrás una advertencia gracias a la nueva regla missing_abi lint.
  5. Eliminación del soporte para i586-pc-windows-msvc: Este target de segunda categoría será eliminado en Rust 1.87.

Nuevas APIs Estabilizadas en Rust 1.86

  • Métodos de {float} como next_down y next_up.
  • Nuevas funciones de HashMap y Vec como pop_if.
  • Métodos relacionados con sync::Once y sync::OnceLock.
  • Funciones útiles como hint::black_box y varias funciones para manipular cadenas y cursores de I/O en contextos constantes.

Conclusión

Rust 1.86 continúa mejorando con características como trait upcasting y otras optimizaciones y funciones estables, lo que aumenta su flexibilidad y eficiencia.

Estas actualizaciones hacen que Rust sea aún más potente para el desarrollo de software seguro y de alto rendimiento.

Si estás utilizando una versión anterior, puedes actualizar fácilmente con rustup update stable para aprovechar estas mejoras.

Admin

Compartir
Publicado por
Admin
Etiquetas: RustLenguaje

Entradas recientes

Descubre los Mejores Juegos Gratis de Amazon Luna en 2025

Los juegos gratis de Amazon Prime Gaming representan un atractivo significativo para los suscriptores de…

8 horas hace

Juegos Gratis de Epic Games hasta el 20 de noviembre: ScourgeBringer, Songs of Silence y Zero Hour

Si eres un amante de los videojuegos, estás de suerte. Hasta el 20 de noviembre…

18 horas hace

Premio Nobel se une a Bigtechs para trabajar en construir Computadoras Cuánticas personales

La computación cuántica acaba de dar un salto gigante. John M. Martinis, recién galardonado con…

19 horas hace

La biografía de Steve Jobs escrita por el biógrafo Walter Isaacson

La biografía más vendida del cofundador de Apple, Steve Jobs; escrita por uno de los…

3 días hace

Cómo la Inteligencia Artificial está Revolucionando los Sistemas de Seguridad en el Hogar

Hubo un tiempo en el que la “seguridad en el hogar” significaba confiar en un…

3 días hace

Elon Musk se asegura una compensación de 1 billón de dólares con Tesla

Elon Musk vuelve a romper todos los esquemas. Los accionistas de Tesla acaban de aprobar…

3 días hace