Une future version de Rust ajoutera core::range::RangeFull et core::range::RangeTo que les réexportations de core::ops. Ceux-ci ne mettent pas en œuvre Iterator et déjà mettre en œuvre Copya déclaré l’équipe de Rust. Une future version de Rust introduira également core::range::legacy::* comme nouveau foyer pour les gammes actuelles. Syntaxe de plage comme 0..1 produit toujours les types hérités pour le moment, a déclaré l’équipe Rust, mais ils seront mis à jour vers core::range types dans une prochaine édition. Avec ces stabilisations, il est désormais possible de stocker les accesseurs de tranche dans Copy types sans fractionnement start et endselon l’équipe. De plus, le nouveau RangeInclusive type rend ses champs publics, contrairement à la version héritée qui évitait d’exposer l’état épuisé de l’itérateur.

Ailleurs dans Rust 1.96.0, deux nouvelles macros, assert_matches! et debug_assert_matches!vérifiez qu’une valeur correspond à un modèle donné, en panique avec un Debug représentation de la valeur autrement. Et les cibles WebAssembly ne passent plus --allow-undefined à l’éditeur de liens, ce qui signifie que les symboles non définis lors de la liaison sont désormais une erreur de l’éditeur de liens au lieu d’être convertis en importations WebAssembly à partir du "env" module. Ce changement empêche les modules de se lier à moins que tous les symboles liés aux liens ne soient définis pour détecter les bogues plus tôt et éviter les problèmes accidentels avec la dénomination des symboles ou similaire.

L’équipe Rust a publié le 30 juin une version intermédiaire, Rust 1.96.1, qui propose une série de correctifs pour Cargo, MIR et libssh2 :

A lire également