A Rust 1.95 megjelent, és mostantól támogatja az
if let
guardokat a
match
kifejezéseken belül. A funkció a Rust 1.88-ban bevezetett
let
-láncolásra épül, és lehetővé teszi, hogy a match ágakban közvetlenül további feltételes mintavizsgálatokat adjunk meg.
A Rust csapata megjegyzi: az
if let
guardokban illesztett mintákat a fordító jelenleg nem veszi figyelembe a match kimerítettségének (exhaustiveness) ellenőrzésekor, hasonlóan a hagyományos
if
guardokhoz.
Egy másik említésre méltó újdonság a
cfg_select!
makró bevezetése. A Rust release csapata szerint ez lényegében egy fordítási idejű
match
, amely konfigurációs predikátumok alapján választ. Hasonló célt szolgál, mint a széles körben használt
cfg-if
crate, de más szintaxissal. A makróval a fejlesztők közvetlenebb módon választhatnak implementációt vagy értéket a célplatform vagy a build konfiguráció alapján.
Emellett a Rust 1.95 jelentősen bővíti a stabil API-k körét. Az újonnan stabilizált elemek között szerepelnek a
MaybeUninit
és a
Cell
fejlesztései, az atomi frissítési és try-update metódusok, a
core::range
modul, a
Vec::push_mut
és
Vec::insert_mut
, a
VecDeque
beszúrást segítő metódusai, a
LinkedList
push-mutatiós segédfüggvényei, valamint több
Layout
metódus.
A Rust 1.95 egyik fontos változása az egyedi targeteket érinti. Kikerült a stabil támogatás arra, hogy egyedi JSON target specifikációt adjanak át a
Rustc
-nek. A projekt szerint ez nem érinti azokat, akik teljesen stabil toolchain-t használnak, mivel a standard library fordítása egyedi targetekhez eddig is csak nightly funkciókkal volt megoldható.
A fordító és a nyelv alapvető frissítései mellett a release notes további változásokat is kiemel a Rust, a Cargo és a Clippy területén. A Rust 1.95 inkább egy átfogó karbantartási és funkciófrissítés, mintsem egy szűk fókuszú kiadás.
A változások részletes listájáért nézd meg a hivatalos bejelentést.


