update crates
[Mitarbeiter/Tim-Zeitz/stud-rust-base.git] / README.md
index 3a06ffa9929cc98eb0ed529de9185b2b6f0b5ca2..59210f995419a2f09f8040d6c7482f6ab35ca5ed 100644 (file)
--- a/README.md
+++ b/README.md
@@ -23,7 +23,7 @@ Insbesondere mit ["Dem Buch"](https://doc.rust-lang.org/book/second-edition/inde
 Rust hat ein Build- und Dependency Managementsystem. Yay.
 Heißt `cargo`.
 Mit `cargo build` kann man Programme bauen.
 Rust hat ein Build- und Dependency Managementsystem. Yay.
 Heißt `cargo`.
 Mit `cargo build` kann man Programme bauen.
-Im Falle dieses Repos baut das nur die Basislib und noch keine Executable, dazu dann z.B. `cargo build --bin example`.
+Im Falle dieses Repos baut das nur die Basislib und noch keine Executable, dazu dann z.B. `cargo build --bin example` oder statt example ein anderes Programm wie `decode_vector`.
 Mit `cargo run` kann man bauen und direkt ausführen.
 Argumente an das Programm kommen nach einem `--`.
 Sobald die Performance interessant ist unbedingt `cargo run --release` nutzen - das ist ungefähr was `-O3` bei C++ ist.
 Mit `cargo run` kann man bauen und direkt ausführen.
 Argumente an das Programm kommen nach einem `--`.
 Sobald die Performance interessant ist unbedingt `cargo run --release` nutzen - das ist ungefähr was `-O3` bei C++ ist.
@@ -35,7 +35,7 @@ Mit `cargo check` kann man das Programm checken ohne zu bauen, das kann einem ei
 
 Rust hat einen exzellenten Linter, der einem sehr hilft idiomatischen und performanten Code zu schreiben.
 Das ist insbesondere wenn man noch nicht viel Erfahrung mit der Sprache hat extrem sinnvoll!
 
 Rust hat einen exzellenten Linter, der einem sehr hilft idiomatischen und performanten Code zu schreiben.
 Das ist insbesondere wenn man noch nicht viel Erfahrung mit der Sprache hat extrem sinnvoll!
-Installieren kann man Clippy mit `rustup component add clippy-preview`.
+Installieren kann man Clippy mit `rustup component add clippy`.
 Anstatt `cargo check` ruft man dann `cargo clippy` auf und kann sich auf viel hilfreiches Feedback freuen.
 
 # Rust Routenplanungs-Basis-Framework
 Anstatt `cargo check` ruft man dann `cargo clippy` auf und kann sich auf viel hilfreiches Feedback freuen.
 
 # Rust Routenplanungs-Basis-Framework
@@ -53,12 +53,11 @@ Die entsprechenden Funktionen sind über Traits definiert und können so direkt
 Das kann z.B. so aussehen:
 
 ```Rust
 Das kann z.B. so aussehen:
 
 ```Rust
-extern crate stud_rust_base;
 use stud_rust_base::io::*;
 
 use stud_rust_base::io::*;
 
-let head = Vec::<u32>::load_from("head_file_name").expect("could not read head");
-let lat = Vec::<f32>::load_from("node_latitude_file_name").expect("could not read lat");
-head.write_to("output_file").expect("could not write head");
+let head = Vec::<u32>::load_from("head_file_name")?;
+let lat = Vec::<f32>::load_from("node_latitude_file_name")?;
+head.write_to(&"output_file")?;
 ```
 
 Die Dateien in `src/bin/` sind einmal ein Beispielprogramm sowieso Hilfsprogramme.
 ```
 
 Die Dateien in `src/bin/` sind einmal ein Beispielprogramm sowieso Hilfsprogramme.
@@ -66,6 +65,10 @@ Die Dateien in `src/bin/` sind einmal ein Beispielprogramm sowieso Hilfsprogramm
 Das Programm `compare_vector` vergleicht ob zwei Vektoren identisch sind und wenn sie es nicht sind gibt es eine Übersicht über die Unterschiede.
 Fügen sie Ihre Programme in `src/bin/` hinzu, diese werden dann von `cargo` automatisch gefunden.
 
 Das Programm `compare_vector` vergleicht ob zwei Vektoren identisch sind und wenn sie es nicht sind gibt es eine Übersicht über die Unterschiede.
 Fügen sie Ihre Programme in `src/bin/` hinzu, diese werden dann von `cargo` automatisch gefunden.
 
+## Docs
+
+`cargo doc --open` öffnet die Dokumentation zu dem bereitgestelltem Code.
+
 ## Graphen
 
 Knoten und Kanten werden durch numerische IDs identifiziert, die von `0` bis `n-1` bzw. `m-1` gehen, wobei `n` die Anzahl an Knoten und `m` die Anzahl an gerichteten Kanten ist.
 ## Graphen
 
 Knoten und Kanten werden durch numerische IDs identifiziert, die von `0` bis `n-1` bzw. `m-1` gehen, wobei `n` die Anzahl an Knoten und `m` die Anzahl an gerichteten Kanten ist.
@@ -75,15 +78,14 @@ Diese heißen `first_out`, `head` und `weight`.
 Um über die ausgehenden Kanten eines Knoten zu iterieren können Sie den folgenden Code verwenden:
 
 ```Rust
 Um über die ausgehenden Kanten eines Knoten zu iterieren können Sie den folgenden Code verwenden:
 
 ```Rust
-extern crate stud_rust_base;
 use stud_rust_base::{types::*, io::*};
 
 use stud_rust_base::{types::*, io::*};
 
-let first_out = Vec::<EdgeId>::load_from("first_out_file_name").expect("could not read first_out");
-let head = Vec::<NodeId>::load_from("head_file_name").expect("could not read head");
-let travel_time = Vec::<Weight>::load_from("weight_file_name").expect("could not read travel_time");
+let first_out = Vec::<EdgeId>::load_from("first_out_file_name")?;
+let head = Vec::<NodeId>::load_from("head_file_name")?;
+let travel_time = Vec::<Weight>::load_from("weight_file_name")?;
 
 let node_id = 42;
 
 let node_id = 42;
-for edge_id in head[first_out[node_id] as usize .. first_out[node_id + 1] as usize] {
+for edge_id in first_out[node_id] .. first_out[node_id + 1] {
     println!("There is an arc from {} to {} with weight {}", node_id, head[edge_id as usize], travel_time[edge_id as usize]);
 }
 ```
     println!("There is an arc from {} to {} with weight {}", node_id, head[edge_id as usize], travel_time[edge_id as usize]);
 }
 ```
@@ -104,9 +106,9 @@ Die Aufgabengraphen haben die Größe des Deutschlandgraphen.
 
 ## Hinweise zur Nutzung im Routenplanungspraktikum
 
 
 ## Hinweise zur Nutzung im Routenplanungspraktikum
 
-Der Quellcode soll durch das Ausführen von `cargo build --all` mit dem aktuellen stabilen Compiler (1.29.2) übersetzt werden können.
+Der Quellcode soll durch das Ausführen von `cargo build --all` mit dem aktuellen stabilen Compiler (1.38.0) übersetzt werden können.
 Auf den Poolraumrechner ist kein Rust Compiler vorinstalliert.
 Sie können aber für ihren Nutzer lokal `rustup` und damit dann einen aktuellen Compiler installieren.
 Die Nutzung von nicht stabilen nightly Features ist nicht erlaubt.
 Das verwenden externer crates ist nicht erlaubt.
 Auf den Poolraumrechner ist kein Rust Compiler vorinstalliert.
 Sie können aber für ihren Nutzer lokal `rustup` und damit dann einen aktuellen Compiler installieren.
 Die Nutzung von nicht stabilen nightly Features ist nicht erlaubt.
 Das verwenden externer crates ist nicht erlaubt.
-Die Rust-Standardbibliothek ist nicht extern.
+Die Rust-Standardbibliothek gilt nicht als extern.