This repository contains the exercises and solutions that some members of the Rust Girona community have solved of the Rust Course FEI VŠB-TUO.
Each directory mimic the original lesson structure. The sub-directory exercises contains the original non-solved exercises, the sub-directory solutions (when exists) contains a sub-directory with different solutions solved by some members of the Rust Girona community.
To keep the content easily accessible this is a copy of the original exercises index with links into this repository:
- 01/01 - Factorial (basic syntax)
- 01/02 - Find maximum in an array (cycles)
- 01/03 - 3D vector (structs)
- 01/04 - Luhn's algorithm (arithmetics)
- 01/05 - Match parentheses (pattern matching)
- 01/06 - Write tests for a sanitization function (writing tests)
- 02/01 - Perform simple calculation (enums)
- 02/02 - Match exercises (pattern matching)
- 02/03 - Computer state transition (structs) (structs)
- 02/04 - Computer state transition (enums) (enums, pattern matching)
- 02/05 - Simple URL validator (newtype pattern, encapsulation, parsing)
- 02/06 - Brainfuck interpreter (enums, parsing)
- 03/01 - Encryption & decryption (ownership)
- 03/02 - Longest string (lifetimes)
- 03/03 - Strip prefix (lifetimes, strings)
- 03/04 - Interleave strings (strings)
- 03/05 - Merge sorted slices (slices)
- 03/06 - Bubble sort (slices)
- 03/07 - Zero-copy parsing (lifetimes in structs, parsing)
- 04/01 - Shape interface (traits)
- 04/02 - Case-insensitive comparator (traits, iterators)
- 04/03 - Fibonacci iterator (iterators)
- 04/04 - Iterator exercises (iterators)
- 04/05 - Split items (iterators)
- 04/06 - Cumulative sum (traits, iterators)
- 04/07 - Adjacent diff (iterators)
- 04/08 - 1D Range (structs, iterators)
- 04/09 - Poker hand value (traits)
- 04/10 - Ring buffer (generics, data structure implementation)
- 05/01 - Binary tree (smart pointers)
- 05/02 - Parser combinators (closures)
- 05/03 - Directed graph (smart pointers, interior mutability)
- 06/01 - Newtype wrapper (declarative macros)
- 06/02 - Hashmap constructor (declarative macros)
- 06/03 - Display trait derive (procedural macros)
- 06/04 - Memory map (BTreeMap, algorithmization)
- 07/01 - Parallel sum (threads, atomics)
- 07/02 - Worker queue (threads, channels)
- 07/03 - Factorio (threads, channels)
- 08/01 - TCP/IP network chat using blocking I/O (threads)
- 09/01 - TCP/IP network chat using non-blocking I/O (epoll, event loop)
- 10/01 - TCP/IP network chat using async/await (async/await)
We appreciate Jakub Beránek for creating and releasing under an Open Source license this Rust Course. with exercises.