Estos tipos "Lazy" añadidos a la última versión 1.80 presentada el 25 de julio del famoso lenguaje de programación de memoria segura, retrasan la inicialización de los datos hasta su primer acceso. Los desarrolladores con una versión anterior de Óxido instalado a través de rustup se puede actualizar a la versión 1.80 ejecutando el comando $ rustup update stable.

Los tipos LazyCell y LazyLock, que retrasan la inicialización de los valores hasta el primer acceso, son similares a los tipos OnceCell y OnceLock estabilizados en Rust 1.70, pero con la función de inicialización incluida en la celda. Esto completa la estabilización de la funcionalidad adoptada en la biblioteca estándar desde las cajas lazy_static y once_cell. LazyLock es la opción segura para subprocesos, adecuada para cosas como valores estáticos. "LazyCell no tiene sincronización de subprocesos y, por lo tanto, no implementa la sincronización, que es necesaria para valores estáticos, ¡pero aún se puede usar en valores estáticos thread_local!", como lo expresó el equipo de Rust.

Playas más funcionales

También en Rust 1.80, los patrones de rango ahora pueden usar puntos finales exclusivos, escritos a..b o ..b, similares a las expresiones de tipo Range y RangeTo. Los rangos exclusivos se implementaron como una característica inestable en Rust. El equipo de Rust explicó que el problema con el bloque era que podía agregar confusión y aumentar el riesgo de errores de un solo dígito en los patrones. Con Rust 1.80, se ha mejorado la verificación de integridad para detectar mejor las brechas en la coincidencia de patrones, y las nuevas líneas non_contiguous_range_endpoints y overlapping_range_endpoints facilitarán la detección de casos en los que los desarrolladores podrían querer cambiar de patrones exclusivos a inclusivos, o viceversa.

En Rust 1.79, rustc estabilizó el indicador --check-cfg. Ahora, Cargo 1.80 habilita estas comprobaciones para todos los nombres y valores de cfg que conoce (además de los nombres y valores de rustc bien conocidos). Esto incluye los nombres de funciones en Cargo.toml, así como la nueva salida cargo::rustc-check-cfg de los scripts de compilación. Rust 1.80 también estabiliza muchas API.