5.0.0
rust-lang/rustlings5.0.0Jul 16, 2022by manyinsects
AI Summary
A major overhaul involving the restructuring of exercise folders, renaming several exercises, adding new exercises for lifetimes, traits, threads, strings, and hashmaps, and improving the hint system.
Key Highlights
- Major release with significant restructuring and new exercises
- Renamed `vec` to `vecs` and `option` to `options`
- Added new exercises for lifetimes, traits, threads, strings, and hashmaps
- Improved hint comments and AsRefMut testing
Breaking Changes
- Renamed `vec` exercise to `vecs`
- Renamed `option` exercise to `options`
- Restructured `collections` exercises into separate folders
- Moved `generics3` to `quiz3`
New Features
- 12 new exercises added (lifetimes, traits, threads, strings, hashmaps, etc.)
- Improved hint comments including watch mode references
- New `strings3` and `hashmaps3` exercises
- New `threads3` exercise using `std::sync::mpsc`
- New `clippy3` exercise
- New lifetimes and traits exercises
Full Release Notes
Probably Rustlings' biggest release yet! 🎉 For detailed information, check the [changelog](https://github.com/rust-lang/rustlings/blob/main/CHANGELOG.md#500-2022-07-16). I'll post the features section here: - Hint comments in exercises now also include a reference to the `hint` watch mode subcommand. - **intro1**: Added more hints to point the user to the source file. - **variables**: Switched variables3 and variables4. - Moved `vec` and `primitive_types` exercises before `move_semantics`. - Renamed `vec` to `vecs` to be more in line with the naming in general. - Split up the `collections` exercises in their own folders. - **vec2**: Added a second part of the function that provides an alternative, immutable way of modifying vec values. - **enums3**: Added a hint. - Moved `strings` before `modules`. - Added a `strings3` exercise to teach modifying strings. - Added a `hashmaps3` exercise for some advanced usage of hashmaps. - Moved the original `quiz2` to be `strings4`, since it only tested strings anyways. - Reworked `quiz2` into a new exercise that tests more chapters. - Renamed `option` to `options`. - **options1**: Rewrote parts of the exercise to remove the weird array iteration stuff. - Moved `generics3` to be `quiz3`. - Moved box/arc exercises behind `iterators`. - **iterators4**: Added a test for factorials of zero. - Split `threads1` between two exercises, the first one focusing more on `JoinHandle`s. - Added a `threads3` exercises that uses `std::sync::mpsc`. - Added a `clippy3` exercises with some more interesting checks. - **as_ref_mut**: Added a section that actually tests `AsMut`. - Added 3 new lifetimes exercises. - Added 3 new traits exercises. ### Summary This release adds 12 new exercises, makes tons of little (and sometimes significant) improvements to existing exercises, rearranges a good chunk of the exercises to make more sense in our curriculum (while still trying to stay faithful to the book), and it gets rid of some exercises that have not been a good fit for this project. There's still a fair amount of things that I want to change, such as having better exercises for smart pointers, but that's for a future release. Feel free to post your feedback after you've completed this new version of the course! Special thanks for the Rust Foundation for sponsoring the majority of my work on this release! To upgrade: ```sh git fetch git checkout tags/5.0.0 ```