Rust released version 1.100 on November 12, stabilizing the never type after ten years and five unsuccessful stabilization attempts. The release also adds custom allocators for Vec and Box, cleanup guards, and new Cargo dependency controls.
The never type, written as !, represents computations which produce no value. Earlier versions supported ! in function return positions. Rust 1.100 permits naming the type throughout the language, including Result<T, !> for operations without an error value, according to the release announcement.
Infallible becomes an alias for !. The accompanying fallback change also reaches the 2015, 2018, and 2021 editions. Some older code requires adjustments, particularly around generic return values.
The stabilized Allocator trait gives library authors custom allocation support for Vec and Box. Support does not yet extend across all standard collections.
Another addition, DropGuard, runs a closure when its guard leaves scope, including through early returns or panic unwinding. Dismissing the guard returns the stored value without running the cleanup closure.
Cargo adds dependency cooldowns
Cargo now supports a minimum publication age during dependency resolution. Developers opt in through .cargo/config.toml, for example by setting global-min-publish-age to "3 days". Newly published versions remain outside resolution until the waiting period ends.
The restriction does not apply to cargo install or versions lacking publication timestamps. Cargo also introduces unused-dependency warnings and changes its intermediate build directory layout, according to the release notes. Tools relying on the previous directory structure require review.
Comments (0)