Entwickler können Structs, Traits und Enums ab Rust 1.20 Konstanten zuordnen und Cargo schützt seine Zugangsdaten besser.
Neben API-Stabilisierungen, drei neuen Sortierfunktionen in der Standardbibliothek (“slice::sort_unstable_by_key”, “slice::sort_unstable_by” und “slice::sort_unstable”), einem Update auf Unicode 10.0 und einer Absicherung gegen Stack Clash stabilisiert das neue Rust 1.20 laut der Ankündigung assoziierte Konstanten für Structs, Traits und Enums mit. Das Feature ist seit drei Jahren in Arbeit und folgt der Einführung von assoziierten Funktionen, die mit einem Typ verbunden sind und nicht mit einer Instanz.
Im Falle der assoziierten Konstanten wird die “ID” der Konstanten einem Struct, Enum oder Trait direkt zugeordnet. Im Falle von Traits ist es möglich, die Konstante zu deklarieren, ohne ihr einen Wert zuzuordnen. Das holt der Entwickler dann beim Implementieren des Traits nach. Bislang ließen sich Traits, die Floating-Point-Zahlen repräsentieren, nicht in konstante Ausdrücke einfügen, weil es sich um Funktionen handelt. Dieses Problem wollen die assoziierten Konstanten beheben, die Ankündigung zeigt ein Implementierungsbeispiel.
Rusts Paketmanager Cargos verstaut seine Zugangsdaten neuerdings an einem sicheren Ort. Die lagerten bislang in “~/.cargo/config” mit 644-Rechten, andere Nutzer konnten sie also lesen. Mit Rust 1.20 verpflanzen die Rust-Entwickler das geheime Token in die Datei “~/.cargo/credentials”, auf die dank 600er-Zugriffsrechten nur der Besitzer des Home selbst Zugriff hat.
Weiterhin aktiviert Rust 1.20 das Webassembly-Backend für LLVM (Wasm), gestaltet einige Fehlermeldungen aussagekräftiger und repariert eine Menge Bugs in Macros. Eine detaillierte Auflistung der Änderungen liefert Github. Wer seine Rust-Installation aktualisieren möchte, tut das über “rustup update stable”.






