1
0
mirror of https://github.com/google/comprehensive-rust.git synced 2025-08-08 08:22:52 +02:00
Commit Graph

2420 Commits

Author SHA1 Message Date
d7f8eb045f Remove reference to discontuned async-std package (#2841)
Fixes #2839.
2025-08-06 09:50:46 +02:00
6e2c393364 Fix typo (#2842)
Fixes #2840
2025-08-06 09:50:19 +02:00
196dafc7e8 cargo: bump the minor group with 2 updates (#2838)
Bumps the minor group with 2 updates:
[tokio](https://github.com/tokio-rs/tokio) and
[tokio-websockets](https://github.com/Gelbpunkt/tokio-websockets).
2025-08-02 12:17:56 -04:00
426f3f783a cargo: bump the patch group with 3 updates (#2837)
Bumps the patch group with 3 updates:
[clap](https://github.com/clap-rs/clap),
[serde_json](https://github.com/serde-rs/json) and
[reqwest](https://github.com/seanmonstar/reqwest).
2025-08-02 12:17:06 -04:00
570a726cb5 Add xtask support for refresh slide list. (#2774)
Adds support for a `refresh-slide-list` argument when running the
command `cargo xtask web-tests`. Allows one to also specify an optional
book html directory **if** one uses the `refresh-slide-list` argument.
Fixes #2744 .
2025-08-01 11:07:19 +03:00
5fc5893fbf Support setting language and output directory in cargo xtask (#2776)
In addition to simplifying building locally (no need to set an
environment variable), this makes it possible to use the `cargo xtask
build` command in the CI and specify any output location, rather than
relying on the build.sh script.

---------

Co-authored-by: Eric Githinji <egithinji@google.com>
2025-07-31 12:54:26 +03:00
16d25dbed7 Clarify Matching Values section (#2833) 2025-07-29 22:09:51 -04:00
a0edd51120 Add a note about using rust-bindgen (#2818)
Co-authored-by: Dmitri Gribenko <gribozavr@gmail.com>
2025-07-28 02:29:32 +00:00
e157487e6e Fix typo in Matching Values section (#2832)
Given 

```
#[rustfmt::skip]
fn main() {
    let input = '1';
    match input {
        key if key.is_lowercase() => println!("Lowercase: {key}"),
        'q'                       => println!("Quitting"),
        'a' | 's' | 'w' | 'd'     => println!("Moving around"),
        '0'..='9'                 => println!("Number input"),
        _                         => println!("Something else"),
    }
}
```

the output will be

```
Number input
```

So in practice, failing the condition does result to the other arms if
the other arms are after that (if I'm reading this correctly).
2025-07-27 18:52:11 +02:00
697054c301 Added new reviewer for Turkish translation (#2831)
Hello, I would like to support the translation of Rust into Turkish in
order to promote it in Turkey. As I saw in the previous PRs, we need to
add our own name here, so I am opening a PR in this regard. I hope it
will have a positive outcome (I know I opened the PR with the wrong
name, I'm sorry).
2025-07-27 19:44:51 +03:00
0105fac065 Fix typo in fa.po (#2829)
Fix typo in fa.po
2025-07-27 18:34:47 +02:00
a76b50a0df Remove unnecessary dependencies on libbinder_rs (#2782)
These dependencies turned out not to be necessary, since depending on
the generated `com.example.birthdayservice-rust` also exports the common
binder functionality.
2025-07-25 11:11:56 +02:00
047b2b2255 Add note to binary-tree exercise about duplicate values (#2790)
Just a small note to clarify a minor point of confusion with the
exercise.
2025-07-25 11:11:17 +02:00
f37402066d Remove unnecessary type cast in C ffi example (#2783)
A `&T` can automatically coerce to a `*const T`, so the manual cast
isn't necessary here.
2025-07-25 11:10:31 +02:00
c4985cbf27 Fix major Korean translation issues on title (#2825)
This fixes the titles of Korean translation which has been mixed or has
major issues that may reader harden to understand
2025-07-25 10:52:53 +02:00
1a3c11b03e Add speaker note that arrays go on the stack (#2826) 2025-07-23 10:37:19 -07:00
4dbbcce4b8 Fix typo in embedded-hal.md (#2828) 2025-07-22 16:39:59 +00:00
8994e390af Fix missing link (fixes #2822) (#2823)
This change fixes a broken link when markdown source is rendered as HTML
by mdbook.
2025-07-18 11:48:46 +02:00
c15f398c3d Bump the npm_and_yarn group across 1 directory with 2 updates (#2824)
Bumps the npm_and_yarn group with 2 updates in the /tests directory:
[on-headers](https://github.com/jshttp/on-headers) and
[morgan](https://github.com/expressjs/morgan).

Updates `on-headers` from 1.0.2 to 1.1.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/jshttp/on-headers/releases">on-headers's
releases</a>.</em></p>
<blockquote>
<h2>1.1.0</h2>
<h2>Important</h2>
<ul>
<li>Fix <a
href="https://www.cve.org/CVERecord?id=CVE-2025-7339">CVE-2025-7339</a>
(<a
href="https://github.com/jshttp/on-headers/security/advisories/GHSA-76c9-3jph-rj3q">GHSA-76c9-3jph-rj3q</a>)</li>
</ul>
<h2>What's Changed</h2>
<ul>
<li>Migrate CI pipeline to GitHub actions by <a
href="https://github.com/carpasse"><code>@​carpasse</code></a> in <a
href="https://redirect.github.com/jshttp/on-headers/pull/12">jshttp/on-headers#12</a></li>
<li>fix README.md badges by <a
href="https://github.com/carpasse"><code>@​carpasse</code></a> in <a
href="https://redirect.github.com/jshttp/on-headers/pull/13">jshttp/on-headers#13</a></li>
<li>add OSSF scorecard action by <a
href="https://github.com/carpasse"><code>@​carpasse</code></a> in <a
href="https://redirect.github.com/jshttp/on-headers/pull/14">jshttp/on-headers#14</a></li>
<li>fix: use <code>ubuntu-latest</code> as ci runner by <a
href="https://github.com/UlisesGascon"><code>@​UlisesGascon</code></a>
in <a
href="https://redirect.github.com/jshttp/on-headers/pull/19">jshttp/on-headers#19</a></li>
<li>ci: apply OSSF Scorecard security best practices by <a
href="https://github.com/UlisesGascon"><code>@​UlisesGascon</code></a>
in <a
href="https://redirect.github.com/jshttp/on-headers/pull/20">jshttp/on-headers#20</a></li>
<li>👷 add upstream change detection by <a
href="https://github.com/ctcpip"><code>@​ctcpip</code></a> in <a
href="https://redirect.github.com/jshttp/on-headers/pull/31">jshttp/on-headers#31</a></li>
<li> add script to update known hashes by <a
href="https://github.com/ctcpip"><code>@​ctcpip</code></a> in <a
href="https://redirect.github.com/jshttp/on-headers/pull/32">jshttp/on-headers#32</a></li>
<li>💚 update CI - add newer node versions by <a
href="https://github.com/ctcpip"><code>@​ctcpip</code></a> in <a
href="https://redirect.github.com/jshttp/on-headers/pull/33">jshttp/on-headers#33</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/carpasse"><code>@​carpasse</code></a>
made their first contribution in <a
href="https://redirect.github.com/jshttp/on-headers/pull/12">jshttp/on-headers#12</a></li>
<li><a
href="https://github.com/UlisesGascon"><code>@​UlisesGascon</code></a>
made their first contribution in <a
href="https://redirect.github.com/jshttp/on-headers/pull/19">jshttp/on-headers#19</a></li>
<li><a href="https://github.com/ctcpip"><code>@​ctcpip</code></a> made
their first contribution in <a
href="https://redirect.github.com/jshttp/on-headers/pull/31">jshttp/on-headers#31</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/jshttp/on-headers/compare/v1.0.2...v1.1.0">https://github.com/jshttp/on-headers/compare/v1.0.2...v1.1.0</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/jshttp/on-headers/blob/master/HISTORY.md">on-headers's
changelog</a>.</em></p>
<blockquote>
<h1>1.1.0 / 2025-07-17</h1>
<ul>
<li>Fix <a
href="https://www.cve.org/CVERecord?id=CVE-2025-7339">CVE-2025-7339</a>
(<a
href="https://github.com/jshttp/on-headers/security/advisories/GHSA-76c9-3jph-rj3q">GHSA-76c9-3jph-rj3q</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="4b017af88f"><code>4b017af</code></a>
1.1.0</li>
<li><a
href="b636f2d08e"><code>b636f2d</code></a>
♻️ refactor header array code</li>
<li><a
href="3e2c2d46c3"><code>3e2c2d4</code></a>
 ignore falsy header keys, matching node behavior</li>
<li><a
href="172eb41b99"><code>172eb41</code></a>
 support duplicate headers</li>
<li><a
href="c6e384908c"><code>c6e3849</code></a>
🔒️ fix array handling</li>
<li><a
href="6893518341"><code>6893518</code></a>
💚 update CI - add newer node versions</li>
<li><a
href="56a345d82b"><code>56a345d</code></a>
 add script to update known hashes</li>
<li><a
href="175ab21715"><code>175ab21</code></a>
👷 add upstream change detection (<a
href="https://redirect.github.com/jshttp/on-headers/issues/31">#31</a>)</li>
<li><a
href="ce0b2c8fcd"><code>ce0b2c8</code></a>
ci: apply OSSF Scorecard security best practices (<a
href="https://redirect.github.com/jshttp/on-headers/issues/20">#20</a>)</li>
<li><a
href="1a38c543e7"><code>1a38c54</code></a>
fix: use <code>ubuntu-latest</code> as ci runner (<a
href="https://redirect.github.com/jshttp/on-headers/issues/19">#19</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/jshttp/on-headers/compare/v1.0.2...v1.1.0">compare
view</a></li>
</ul>
</details>
<details>
<summary>Maintainer changes</summary>
<p>This version was pushed to npm by <a
href="https://www.npmjs.com/~ulisesgascon">ulisesgascon</a>, a new
releaser for on-headers since your current version.</p>
</details>
<br />

Updates `morgan` from 1.10.0 to 1.10.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/expressjs/morgan/releases">morgan's
releases</a>.</em></p>
<blockquote>
<h2>1.10.1</h2>
<h2>What's Changed</h2>
<ul>
<li>renaming simple to sample in readme by <a
href="https://github.com/ryhinchey"><code>@​ryhinchey</code></a> in <a
href="https://redirect.github.com/expressjs/morgan/pull/237">expressjs/morgan#237</a></li>
<li>adding installation instructions to readme by <a
href="https://github.com/ryhinchey"><code>@​ryhinchey</code></a> in <a
href="https://redirect.github.com/expressjs/morgan/pull/233">expressjs/morgan#233</a></li>
<li>chore: add support for OSSF scorecard reporting by <a
href="https://github.com/inigomarquinez"><code>@​inigomarquinez</code></a>
in <a
href="https://redirect.github.com/expressjs/morgan/pull/291">expressjs/morgan#291</a></li>
<li>ci: replace travis with github actions by <a
href="https://github.com/inigomarquinez"><code>@​inigomarquinez</code></a>
in <a
href="https://redirect.github.com/expressjs/morgan/pull/290">expressjs/morgan#290</a></li>
<li>docs: add example output for log formats by <a
href="https://github.com/jonchurch"><code>@​jonchurch</code></a> in <a
href="https://redirect.github.com/expressjs/morgan/pull/299">expressjs/morgan#299</a></li>
<li>ci: use ubuntu-latest by <a
href="https://github.com/bjohansebas"><code>@​bjohansebas</code></a> in
<a
href="https://redirect.github.com/expressjs/morgan/pull/301">expressjs/morgan#301</a></li>
<li>ci: apply OSSF Scorecard security best practices by <a
href="https://github.com/UlisesGascon"><code>@​UlisesGascon</code></a>
in <a
href="https://redirect.github.com/expressjs/morgan/pull/300">expressjs/morgan#300</a></li>
<li>remove --bail by <a
href="https://github.com/jonchurch"><code>@​jonchurch</code></a> in <a
href="https://redirect.github.com/expressjs/morgan/pull/314">expressjs/morgan#314</a></li>
<li>⬆️ bump on-headers by <a
href="https://github.com/ctcpip"><code>@​ctcpip</code></a> in <a
href="https://redirect.github.com/expressjs/morgan/pull/319">expressjs/morgan#319</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/inigomarquinez"><code>@​inigomarquinez</code></a>
made their first contribution in <a
href="https://redirect.github.com/expressjs/morgan/pull/291">expressjs/morgan#291</a></li>
<li><a href="https://github.com/jonchurch"><code>@​jonchurch</code></a>
made their first contribution in <a
href="https://redirect.github.com/expressjs/morgan/pull/299">expressjs/morgan#299</a></li>
<li><a
href="https://github.com/bjohansebas"><code>@​bjohansebas</code></a>
made their first contribution in <a
href="https://redirect.github.com/expressjs/morgan/pull/301">expressjs/morgan#301</a></li>
<li><a
href="https://github.com/UlisesGascon"><code>@​UlisesGascon</code></a>
made their first contribution in <a
href="https://redirect.github.com/expressjs/morgan/pull/300">expressjs/morgan#300</a></li>
<li><a href="https://github.com/ctcpip"><code>@​ctcpip</code></a> made
their first contribution in <a
href="https://redirect.github.com/expressjs/morgan/pull/319">expressjs/morgan#319</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/expressjs/morgan/compare/1.10.0...1.10.1">https://github.com/expressjs/morgan/compare/1.10.0...1.10.1</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/expressjs/morgan/blob/master/HISTORY.md">morgan's
changelog</a>.</em></p>
<blockquote>
<h1>1.10.1 / 2025-07-17</h1>
<ul>
<li>deps: on-headers@~1.1.0
<ul>
<li>Fix <a
href="https://www.cve.org/CVERecord?id=CVE-2025-7339">CVE-2025-7339</a>
(<a
href="https://github.com/expressjs/on-headers/security/advisories/GHSA-76c9-3jph-rj3q">GHSA-76c9-3jph-rj3q</a>)</li>
</ul>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="c1c7f107d2"><code>c1c7f10</code></a>
🔖 1.10.1</li>
<li><a
href="eb896c2421"><code>eb896c2</code></a>
⬆️ bump on-headers</li>
<li><a
href="1c3eec6ca5"><code>1c3eec6</code></a>
remove --bail (<a
href="https://redirect.github.com/expressjs/morgan/issues/314">#314</a>)</li>
<li><a
href="b144728e07"><code>b144728</code></a>
ci: apply OSSF Scorecard security best practices (<a
href="https://redirect.github.com/expressjs/morgan/issues/300">#300</a>)</li>
<li><a
href="68c2d2140d"><code>68c2d21</code></a>
ci: use ubuntu-latest (<a
href="https://redirect.github.com/expressjs/morgan/issues/301">#301</a>)</li>
<li><a
href="8740a194bf"><code>8740a19</code></a>
docs: add example output for log formats (<a
href="https://redirect.github.com/expressjs/morgan/issues/299">#299</a>)</li>
<li><a
href="efd6bff1ad"><code>efd6bff</code></a>
ci: migra to GitHub actions (<a
href="https://redirect.github.com/expressjs/morgan/issues/290">#290</a>)</li>
<li><a
href="3b89789447"><code>3b89789</code></a>
ci: add support for OSSF scorecard reporting (<a
href="https://redirect.github.com/expressjs/morgan/issues/291">#291</a>)</li>
<li><a
href="19a6aa5369"><code>19a6aa5</code></a>
docs: add installation section</li>
<li><a
href="b94f3ffe5c"><code>b94f3ff</code></a>
docs: change simple to sample in example descriptions</li>
<li>Additional commits viewable in <a
href="https://github.com/expressjs/morgan/compare/1.10.0...1.10.1">compare
view</a></li>
</ul>
</details>
<details>
<summary>Maintainer changes</summary>
<p>This version was pushed to npm by <a
href="https://www.npmjs.com/~ulisesgascon">ulisesgascon</a>, a new
releaser for morgan since your current version.</p>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/google/comprehensive-rust/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-18 11:48:24 +02:00
22d6af4abd Add Unsafe Rust Deep Dive (#2806)
Adds the start of an unsafe deep dive to Comprehensive Rust. 

The `unsafe` keyword is easy to type, but hard to master. When used
appropriately, it forms a useful and indeed essential part of the Rust
programming language.

By the end of this deep dive, you'll know how to work with `unsafe` code, 
review others' changes that include the `unsafe` keyword, and produce 
your own.

What you'll learn:

- What the terms undefined behavior, soundness, and safety mean
- Why the `unsafe` keyword exists in the Rust language
- How to write your own code using `unsafe` safely
- How to review `unsafe` code

Here is a tentative outline of a 10h (2 day) treatment:

Day 1: Using and Reviewing Unsafe

- Welcome
- Motivations: explain why the `unsafe` keyword exists
- Foundations: provide background knowledge; what is soundness? what is
undefined behavior? what is validity in respect to pointers?
- Mechanics: what a safe `unsafe` block should look like
- Representations and Interoperability: explore how data is laid out in
memory and how that can be sent across the wire and/or stored on disk.
- Reviewing unsafe
- Patterns for safer unsafe: Encapsulating unsafe code in safe-to-use
abstractions, such as marking a type's constructor as `unsafe` so that
invariants only need to be enforced once by the programmer.

Day 2: Deploying Unsafe to Build Abstractions

- Welcome
- Validity in detail: A refresher. Emphasis on the details of the
invariants that are being upheld by a “typical” unsafe block, such as
aliasing, alignment, data validity, padding.
- Concurrency and thread safety: understanding `Send` and `Sync`,
knowing how to implement them on a user-defined type
- Case study: Small string optimization
- Case study: Zero-copy parsing
- Review

---------

Co-authored-by: Dmitri Gribenko <gribozavr@gmail.com>
2025-07-17 14:03:31 +12:00
0a485b5a4c Update destructuring-structs.md (#2807)
In the #2749 , the match arm order has changed. Therefore, the word
"second" should be changed to "first" in the notes.
2025-07-16 18:31:04 +02:00
059b44bf35 Update CODEOWNERS (#2817)
I missed the invitation that was discussed in #1999. That's why I was
deleted from here later. I added myself again.
2025-07-13 19:30:25 +00:00
a55ce1d24f Fix typo: "appenix" → "appendix" (#2815)
If I'm not mistaken...
2025-07-13 12:54:05 +00:00
0f41f32be1 Correct a minor mistake in the code in lifetime-elision.md (#2814) 2025-07-10 13:12:46 +00:00
7eecb9bb77 Link to rust-api-guidelines (#2813)
This has a lot of detailed and high-quality API advice.

I think it's particularly useful to developers experienced in other
languages, who may default to carrying over design idioms where Rust has
better options.
2025-07-09 21:09:08 +02:00
4483602cd2 Introduce 'Idiomatic Rust' learning module (#2800)
This PR introduces:

- A new section for the "Idiomatic Rust" learning module
- (The beginning of) the section on newtype patterns

---------

Co-authored-by: Dmitri Gribenko <gribozavr@gmail.com>
2025-07-09 21:03:41 +02:00
c2ffbd7f5b Update cargo.md (#2780)
Now that there is a `rustup` package, we can take away the scary
language and ask people to install that. This has the advantage that
people get a trusted tool to download the latest Rust compiler.
2025-07-09 18:03:06 +02:00
d4729bfec0 Update exercise.md (#2808)
The point at which the generics segment will be covered has changed
multiple times. After the last change, the 'logger trait' section was
not updated to reflect when it will now be covered. To keep it more
general, I suggest not specifying when it will be covered.
2025-07-07 16:58:09 -04:00
e35f6d684d Update vec.md (#2810)
With #1898 the slices were moved to day 1. So I deleted the day 3 slice
reference sentence in day 2 vec.md.
2025-07-06 23:01:54 +00:00
8419b3095e A few fixes for the unsafe chapter (#2805)
See individual commits in https://github.com/google/comprehensive-rust/pull/2805. Fixes #2734.
2025-07-05 17:46:42 +00:00
7c23d3bcf8 Provide shorter Cargo aliases for xtool subcommands (#2804)
This change deprecates the use of `cargo xtask <tool>` in favor of
dedicated aliases for each tool.

| Proposed | Current |
|----------|---------|
| `cargo install-tools` |  `cargo xtask install-tools` |
| `cargo web-tests` |  `cargo xtask web-tests` |
| `cargo rust-tests` |  `cargo xtask rust-tests` |
| `cargo serve` |  `cargo xtask serve` |
| `cargo build-book` |  `cargo xtask build` |

_Note_: Because `build` is a pre-existing Cargo sub-command, I've
proposed `cargo build-book` as a strawman.


Fixes #2803
2025-07-05 17:44:47 +00:00
010b443615 cargo: bump the patch group in /src/bare-metal/aps/examples with 3 updates (#2799)
Bumps the patch group in /src/bare-metal/aps/examples with 3 updates:
[aarch64-rt](https://github.com/google/aarch64-rt),
[smccc](https://github.com/google/smccc) and
[zerocopy](https://github.com/google/zerocopy).

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-01 11:15:41 +01:00
30e3151f56 Bump crate-ci/typos from 1.33.1 to 1.34.0 (#2798)
Bumps [crate-ci/typos](https://github.com/crate-ci/typos) from 1.33.1 to
1.34.0.

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-01 11:14:56 +01:00
9599e3f7fb Bump dprint/check from 2.2 to 2.3 (#2797)
Bumps [dprint/check](https://github.com/dprint/check) from 2.2 to 2.3.

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-01 11:13:38 +01:00
fb95fb377d cargo: bump the patch group in /src/exercises/bare-metal/rtc with 3 updates (#2796)
Bumps the patch group in /src/exercises/bare-metal/rtc with 3 updates:
[aarch64-rt](https://github.com/google/aarch64-rt),
[smccc](https://github.com/google/smccc) and
[zerocopy](https://github.com/google/zerocopy).

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-01 11:02:18 +01:00
6194ac4abb cargo: bump the patch group with 4 updates (#2795)
Bumps the patch group with 4 updates:
[clap](https://github.com/clap-rs/clap),
[googletest](https://github.com/google/googletest-rust),
[zerocopy](https://github.com/google/zerocopy) and
[reqwest](https://github.com/seanmonstar/reqwest).

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-01 11:01:37 +01:00
5e4feff6d7 Add section about UART driver without safe-mmio back in (#2792)
Having taught the course again since the change to use safe-mmio, it
seems worth keeping this as an intermediate step rather than jumping
straight from pointer arithmetic to safe-mmio's abstractions.
2025-06-30 13:48:32 +01:00
447b31cd45 Remove type annotations from borrowck example (#2791)
These slides are on day 3, I don't think we need the explicit type
annotations at this point.
2025-06-26 15:17:57 -04:00
2e50843812 Move closures section to before libstd sections (#2789)
A lot of stuff in the standard library makes use of closures, so I think
it makes sense to cover those first so that we can more easily reference
libstd functions like `map` and `filter`.
2025-06-26 15:17:32 -04:00
c253b33977 Add note about trait bound in closures exercise (#2788)
I've tried removing this trait bound thinking it's unnecessary only to
then be surprised that it breaks type inference. I think that's worth
calling out to students, so I think a speaker note here would be
appropriate.
2025-06-26 15:09:38 -04:00
39d0588c89 Add direct call to talk in trait implementation slide (#2787)
I think it'd be helpful to also show a direct call to `talk`, so that
it's clear that both trait methods can be called directly.
2025-06-26 15:07:50 -04:00
da28a502bf Make pattern matching exercise code editable (#2786)
I swear I already did this one...

@djmitche it looks like you had removed this `editable` after I last
added it, was there some reason for that?
2025-06-26 15:07:18 -04:00
088744a4c2 Split off function call to make pattern match clearer (#2785)
I think doing the call to `Duration::try_from_secs_f32` in the pattern
match is a bit verbose since the function name is so long. I usually
split this off into a separate variable so that it's easier to see the
pattern match syntax.
2025-06-26 15:01:46 -04:00
40652b6415 Add note about struct-style enum variants in pattern matching (#2784)
Can't forget to demonstrate struct-style enum variants when talking
about pattern matching.
2025-06-26 15:01:04 -04:00
f51f0dbb13 Fix typo in arrays.md (#2781)
According to the error I got from trying out-of-bound index, array
accesses seem to be checked at compile time.

```
   Compiling playground v0.0.1 (/playground)
error: this operation will panic at runtime
 --> src/main.rs:3:5
  |
3 |     a[7] = 0;
  |     ^^^^ index out of bounds: the length is 5 but the index is 7
  |
  = note: `#[deny(unconditional_panic)]` on by default

error: could not compile `playground` (bin "playground") due to 1 previous error
```
2025-06-25 21:08:29 +00:00
bb8b35ab74 Add a speaker note about trying to use a variable as a pattern (#2779) 2025-06-18 17:05:32 -07:00
bb1e1c9414 Updates to bare metal day after teaching it again (#2775)
This fixes some issues running some of the examples, and various other
minor issues I found along the way.
2025-06-12 11:27:22 +01:00
ab26027a79 Fix errors in CODEOWNERS as suggested by GH (#2771) 2025-06-03 15:58:44 +00:00
6ba7f2c654 Reduce wdio verbosity (#2768)
This avoids the need to scroll through pages of useless warnings to find
an actual test failure.
2025-06-03 11:47:38 -04:00
74605c345c cargo: bump reqwest from 0.12.18 to 0.12.19 in the patch group (#2770)
Bumps the patch group with 1 update:
[reqwest](https://github.com/seanmonstar/reqwest).

Updates `reqwest` from 0.12.18 to 0.12.19

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-03 14:46:13 +01:00