Rust 1.67 lançado

A equipe Rust lançou recentemente uma nova versão do Rust 1.67.0. As principais atualizações na versão estável 1.67.0 são as seguintes:

#[must_use]async fneficaz para

#[must_use]As funções anotadas com um asyncagora aplicam esse atributo impl Futureà . FutureO atributo em si já vem #[must_use]anotado , então todos os Futuretipos que implementam são automaticamente #[must_use].

A partir da versão 1.67, o compilador agora avisa se a saída não for utilizada de alguma forma.

#[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 atualização

A biblioteca padrão do Rust tem um canal de multiprodutor e consumidor único desde antes de 1.0, mas nesta versão, a implementação foi trocada para ser baseada em crossbeam-channel. Esta versão não contém alterações de API, mas a nova implementação corrige alguns bugs e melhora o desempenho e a capacidade de manutenção da implementação.

Os usuários não devem notar nenhuma mudança perceptível no comportamento a partir desta versão.

API estável

  • [{integer}::checked_ilog]()
  • [{integer}::checked_ilog2]()
  • [{integer}::checked_ilog10]()
  • [{integer}::ilog]()
  • [{integer}::ilog2]()
  • [{integer}::ilog10]()
  • [NonZeroU*::ilog2]()
  • [NonZeroU*::ilog10]()
  • [NonZero*::BITS]()

Essas APIs agora estão estáveis ​​em const:

  • [char::from_u32]()
  • [char::from_digit]()
  • [char::to_digit]()
  • [core::char::from_u32]()
  • [core::char::from_digit]()

Mais detalhes podem ser encontrados em: https://blog.rust-lang.org/2023/01/26/Rust-1.67.0.html

Acho que você gosta

Origin www.oschina.net/news/226138/rust-1-67-released
Recomendado
Clasificación