El equipo de Rust lanzó recientemente una nueva versión de Rust 1.67.0. Las principales actualizaciones en la versión estable 1.67.0 son las siguientes:
#[must_use]
async fn
eficaz para
#[must_use]
Las funciones anotadas con async
ahora aplican ese atributo a impl Future
la . Future
El atributo en sí ya está #[must_use]
anotado , por lo que todos los Future
tipos que se implementan lo están automáticamente #[must_use]
.
A partir de la versión 1.67, el compilador ahora advierte si la salida no se usa de alguna manera.
#[must_use]
async fn bar() -> u32 { 0 }
async fn caller() {
bar().await;
}
warning: unused output of future returned by `bar` that must be used
--> src/lib.rs:5:5
|
5 | bar().await;
| ^^^^^^^^^^^
|
= note: `#[warn(unused_must_use)]` on by default
std::sync::mpsc
implementar actualización
La biblioteca estándar de Rust ha tenido un canal de múltiples productores y un solo consumidor desde antes de la versión 1.0, pero en esta versión, la implementación se ha cambiado para basarse en crossbeam-channel
. Esta versión no contiene cambios en la API, pero la nueva implementación corrige algunos errores y mejora el rendimiento y la capacidad de mantenimiento de la implementación.
Los usuarios no deberían notar ningún cambio notable en el comportamiento a partir de esta versión.
API estable
[{integer}::checked_ilog]()
[{integer}::checked_ilog2]()
[{integer}::checked_ilog10]()
[{integer}::ilog]()
[{integer}::ilog2]()
[{integer}::ilog10]()
[NonZeroU*::ilog2]()
[NonZeroU*::ilog10]()
[NonZero*::BITS]()
Estas API ahora son estables en const:
[char::from_u32]()
[char::from_digit]()
[char::to_digit]()
[core::char::from_u32]()
[core::char::from_digit]()
Se pueden encontrar más detalles en: https://blog.rust-lang.org/2023/01/26/Rust-1.67.0.html