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 fn
eficaz para
#[must_use]
As funções anotadas com um async
agora aplicam esse atributo impl Future
à . Future
O atributo em si já vem #[must_use]
anotado , então todos os Future
tipos 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::mpsc
implementar 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