Rust 1.67 lanzado

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 fneficaz para

#[must_use]Las funciones anotadas con asyncahora aplican ese atributo a impl Futurela . FutureEl atributo en sí ya está #[must_use]anotado , por lo que todos los Futuretipos 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::mpscimplementar 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

おすすめ

転載: www.oschina.net/news/226138/rust-1-67-released