- Morning of Day 1 still introduces the language and its high-level
goals/value proposition, and starts with the built-in data types Rust
provides, and how you define a function.
- Afternoon of Day 1 gets a front loading of the basic control flow
structures in Rust but not the more exotic ones.
- The exercises for day 1 afternoon will be the Luhn algorithm (where we
can match on digits and enums such as `Option`.
- Morning of day 2 still has discussion of memory management.
Fixes#510.
---------
Co-authored-by: Martin Geisler <mgeisler@google.com>
Drops the comment about usage in the other loop. It's not related to the
focus on copy semantics, and so we want to eliminate that possible
confusion.
---------
Co-authored-by: Martin Geisler <martin@geisler.net>
* help students with the luhn exercise
* mention method-specific types in speaker notes
* Update src/exercises/day-2/luhn.md
Co-authored-by: Martin Geisler <martin@geisler.net>
---------
Co-authored-by: Martin Geisler <martin@geisler.net>
While we don’t have slides showing how to use the crate (#823), we can
at least explain at a high level what the instructor should focus on
when walking through the tutorial.
When building the book, mdBook will always generate an `index.html`
page for first page of the book. This meant that we had the same
content available under two different names:
- `welcome.html`: this is what the TOC would link to, and
- `index.html` or simply `/`: this is what search engines link to
Renaming the page and setting up a redirect should fix this confusion.
We still don’t have a good way of avoiding links to the `index.html`
page, but this should fix the first half of the problem.
I tested this for translations as well by building the output in a
subdirectory and serving the parent directory.
Part of #847.
* Talk about options in `?` chapter
* Combine Option and Result examples
* Update try-operator.md
* Remove semicolon from expansion
* Focus on expansion of `expr?`
* Update try-operator.md
* Update try-operator.md
---------
Co-authored-by: Martin Geisler <mgeisler@google.com>
Conceptually, I'm now thinking of Day 1 to Day 3 as belonging to "Rust Fundamentals", which together with the deep dives make up what we call "Comprehensive Rust".
* Align dining-philosophers-async.rs with sync version
This updates the version to use `std::mem::swap` like the synchronous version.
* Apply suggestions from code review
* Remove statement that data is moved when assigning
The distinction between non-`Copy` and `Copy` types is tricky to explain. One problem is that people often focus on _moving_ vs _copying_ when both variable types always copy data.
This PR removes the statement about moving data (since that is wrong on its own).
* Apply suggestions from code review
Co-authored-by: Dustin J. Mitchell <djmitche@google.com>
* Apply suggestions from code review
Co-authored-by: Dustin J. Mitchell <djmitche@google.com>
---------
Co-authored-by: Dustin J. Mitchell <djmitche@google.com>