Mehr Power in Rust 1.46 durch erweiterten Einsatz konstanter Funktionen

Mit dem neuen Release der Programmiersprache lassen sich mehr Features in Verbindung mit const fn nutzen.

In Pocket speichern vorlesen Druckansicht 8 Kommentare lesen
Mehr Power in Rust 1.46 durch erweiterten Einsatz konstanter Funktionen
Lesezeit: 2 Min.
Von
  • Alexander Neumann

Das neue Rust-Release unter der Version 1.46 umfasst zwei neue Standard-Bibliotheken-APIs und eine für Autoren von Bibliotheken nützliche Funktion. Außerdem ermöglicht die neue Version der Programmiersprache, mehr Kernfunktionen und -Anweisungen mit const fn-Funktionen zu nutzen. Das in Rust 1.31 eingeführte const fn dient zum Definieren konstanter Funktionen, die sich wie herkömmliche Funktionen verwenden lassen.

Zu den neuen Features der Kernsprache, die sich nun mit const fn verwenden lassen, gehören if, if let und match, while, while let und loop sowie die Operatoren && und |||.

Außerdem lässt sich ein Slice casten, wie an dem Beispiel in der Ankündigung zu sehen ist:

const fn foo() {
  let x = [1, 2, 3, 4, 5];

  // cast the array to a slice
  let y: &[_] = &x;
}

Diese Komponenten ließen sich schon vorher nutzen, in Verbindung mit const fn versprechen sich die Entwickler mehr Performance bei Berechnungen zur Kompilier-Zeit. Beispielsweise lassen sich SHA-1-Hashes zur Kompilierzeit mit dem Crate const-sha1 berechnen, und das wohl mit einer 40fachen Leistungssteigerung bei Microsofts WinRT-Bindings für Rust.

Das Thema tangiert auch, dass nun die Funktion std::mem::forget ebenfalls eine const fn-Funktion ist. Zusätzlich gelten in Rust 1.46 nun zwei APIs als stabil, und zwar die Methode Option::zip und das Struct vec::Drain::as_slice. Eine Stabilisierung hat schließlich die Fehlermeldung für den Fall erfahren, dass unpack und damit verbundene Funktionen "in Panik geraten".

Einen guten Ausgangspunkt zur Vertiefung in die Neuerungen des neuen Release bietet die Blog-Ankündigung der Entwickler.

(ane)