Matthias Andreas Benkard | ac0ea8e | 2019-02-23 07:09:34 +0100 | [diff] [blame] | 1 | = Rust Tutorial |
| 2 | Matthias Benkard <matthias.benkard@egym.de> |
| 3 | // Meta |
| 4 | :experimental: |
| 5 | :data-uri: |
| 6 | :sectnums: |
| 7 | :toc: |
| 8 | :stem: |
| 9 | :toclevels: 2 |
| 10 | :description: |
| 11 | :keywords: MI, MSW, eGym, Rust |
| 12 | // Settings |
| 13 | :icons: font |
Matthias Andreas Benkard | bbc0428 | 2019-02-28 06:21:18 +0100 | [diff] [blame] | 14 | :source-highlighter: prettify |
| 15 | :doctype: book |
Matthias Andreas Benkard | ac0ea8e | 2019-02-23 07:09:34 +0100 | [diff] [blame] | 16 | |
| 17 | These are the lecture notes for the introduction to the Rust |
| 18 | programming language held at eGym in 2019. |
| 19 | |
| 20 | |
| 21 | = Part I: The Language |
| 22 | |
| 23 | == Crates & Cargo |
| 24 | |
| 25 | == Basic Types |
| 26 | === `u8`, `i32`, `f64` |
Matthias Andreas Benkard | bbc0428 | 2019-02-28 06:21:18 +0100 | [diff] [blame] | 27 | [source,rust,subs="verbatim,attributes"] |
| 28 | ---- |
| 29 | let a = 100; |
| 30 | let b = 1.0; |
| 31 | let c = 100u8; |
| 32 | |
| 33 | let d = 2*a; |
| 34 | ---- |
| 35 | |
Matthias Andreas Benkard | ac0ea8e | 2019-02-23 07:09:34 +0100 | [diff] [blame] | 36 | === Structs |
| 37 | === `impl Struct` |
| 38 | === Enums |
| 39 | |
| 40 | == References & Lifetimes |
| 41 | === `&` vs `&mut` |
| 42 | === `'static` |
| 43 | === `Box`, `Rc` |
| 44 | |
| 45 | == Polymorphism |
| 46 | === Traits |
| 47 | Ex.: `ToString` |
| 48 | |
| 49 | === Generics |
| 50 | === `dyn Trait` |
| 51 | |
| 52 | == Tidbits |
| 53 | === Clippy |
| 54 | === Lambdas |
Matthias Andreas Benkard | bbc0428 | 2019-02-28 06:21:18 +0100 | [diff] [blame] | 55 | === Doctests |
| 56 | |
Matthias Andreas Benkard | ac0ea8e | 2019-02-23 07:09:34 +0100 | [diff] [blame] | 57 | |
| 58 | = Part II: The Standard Library |
| 59 | |
| 60 | == Error Handling |
| 61 | |
| 62 | == More Types |
| 63 | === `String`, `&str` |
| 64 | === `Vec`, `&[]` |
| 65 | === `Fn` |
| 66 | === `Iter` |
Matthias Andreas Benkard | bbc0428 | 2019-02-28 06:21:18 +0100 | [diff] [blame] | 67 | |
| 68 | == More Traits |
Matthias Andreas Benkard | ac0ea8e | 2019-02-23 07:09:34 +0100 | [diff] [blame] | 69 | === `impl Trait` |
Matthias Andreas Benkard | bbc0428 | 2019-02-28 06:21:18 +0100 | [diff] [blame] | 70 | === `Sized` |
Matthias Andreas Benkard | ac0ea8e | 2019-02-23 07:09:34 +0100 | [diff] [blame] | 71 | |
| 72 | == Safe Concurrency |
| 73 | === `Sync` |
| 74 | === `Send` |
| 75 | === `Arc` |
| 76 | |