Schulungsunterlagen für den Kurs "Rust für Fortgeschrittene"
Folien: https://docs.google.com/presentation/d/1jYxIx7Auf4o4TjKg54ped66MMc1mGqGYoHo6nxW_qfA/edit?usp=sharing
ideas for tomorrow: cargo bench criterion how to work around inheritation
- traits that
embassy rtfm
# installieren/updaten von rust mit rustup
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
#für manche Beispiele Brauchen wir nightly features
rustup toolchain install nightly
rustup default nightly
rustup component add clippy # bester rust linter
# alle example Projekte mit abhängigkeiten holen und bauen
cargo build
- installieren von vscode
- siehe https://code.visualstudio.com/
- plugin rust-analyzer (The Rust Programming Language)
- plugin crates (Seray Uzgur)
- plugin Remote Development (Microsoft; damit können wir in einem Container entwickeln)
- Asynchrone Funktionen in Rust
- Tokio vs async-std vs smol
- Tokio im Einsatz
- Join, select, await…
- Asynchrones Data-Handling und Streams
- Praxisbeispiele
- Speicherverwaltung (Heap und Stack)
- Pointers, Box und Dereferenzierung
- Ownership, Primitive und Non-Premitive typen
- Referenzen zu Mutable und Immutable
- (Berechnete) Konstanten (consts)
- Laufzeit-Typen (Any und TypeId)
- Nicht beweglicher Speicher
- Enums
- Der match Operator
- Pattern-Matching
- Macros
- Derive Macros
- Unsicherer Code
- Rekursion in Rust
- RefCell & Smart Pointer
- Regular Expressions in Rust
- Traits
- Komplexe Traits
- Basis-Aufbau
- Standard-Implementierungen
- Generics
- Richtiges Error-Handling in Rust
- Error Propagation
- Panic! und Result
- Unit- und Integration-Tests in Rust
- Das Rust Testing Framework
- Test Setup (cargo test)
- Assertions
- Tipps zur effizienten Entwicklung
- clippy
- cargo machete for dependencies
- cargo bench
- github copilot
- Projektaufbau