1
0
mirror of https://github.com/google/comprehensive-rust.git synced 2025-06-30 04:19:26 +02:00
Commit Graph

1381 Commits

Author SHA1 Message Date
64bd331314 Add speaker notes to interop with C slides (#2496)
Part of #1083.
2024-12-16 16:53:54 -05:00
2bae363d16 Remove error handling from expression evaluation exercise (#2517)
I think it would be good to simplify the expression evaluation exercise
by removing the error handling around the divide-by-zero case. I think
it overcomplicates the exercise and and adds confusion since at this
point we haven't introduced `Result` (or at least not in any detail).
This allows the students to just focus on writing the pattern matches on
`Expression` and `Op`, and allows the exercise to be shorter (and I
think we need to free up some time where we can, my classes often run
long and cut into how much time students have for exercises).
2024-12-16 16:36:27 -05:00
f60513ebe2 Add a slide about struct visibility and encapsulation (#2522)
The current slide on visibility introduces the idea that modules are the
encapsulation boundary, but it doesn't explicitly doesn't talk about
struct fields/methods. I think it's worth talking explicitly about
structs and encapsulation because most students are going to be coming
from a background where types (instead of modules) are the encapsulation
boundary. It's worth talking explicitly about how encapsulation works,
even if we're kind of repeating information from the previous slide.
2024-12-16 16:34:40 -05:00
2e8d5d3d9c Use .iter() instead of (&values).into_iter() (#2519)
The `(&values).into_iter()` construct used in the solution to the
iterators exercise is kind of awkward and always gets questions from
students. I think the better thing would be to use the `iter` method to
get the initial iterator, as that's the more idiomatic way to. It's also
an opportunity to point out that there are helper methods for getting an
iterator for a collection.
2024-12-16 15:22:44 -05:00
c33a9b2ca4 Better demonstrate imports in modules exercise (#2514)
The solution to the modules exercise changes how `Button`, `Window`, and
`Label` are referenced, adding a `widgets::` prefix to them. This seems
weird to me because the more idiomatic thing to do would be to import
those types at the top of the file. Unless I'm missing a reason why the
solutions is written the way it is, I think this is a good
simplification.
2024-12-16 11:42:22 -05:00
de8ae4fe08 Remove the phrase "third-party" (#2512)
"Third-party" is a Googleism that doesn't make much sense otherwise.
Most references to crates just say "crate", implying that they are
open-source packages available on https://crates.io, so this updates a
few additional locations to do the same.
2024-12-13 09:33:58 +00:00
fbeef48c50 Fix example from zerocopy. (#2511)
This was changed incorrectly in #2434.

Fixes #2472.
2024-12-13 10:17:37 +01:00
699cceadef Set the correct element type in vector (#2500) 2024-12-12 15:02:54 +00:00
d7ed1944c2 Changes to do bare-metal from chromebook (#2510)
On my chromebook:
 * I needed build-essentials to install cc
* I needed to enable sharing the USB device with linux. This instruction
was from a support.google.com article so well-known but not obvious.

---------

Co-authored-by: Martin Geisler <martin@geisler.net>
2024-12-11 21:49:46 +00:00
5d6e26ac10 Add missing docstring to birthday server implementation (#2464)
Without this, compilation fails. The comment *is* in the included Rust
file — but we only include a fraction of the file to keep the example
short. This makes it cumbersome to both show something that works in the
slides while also making it possible for the instructor to show more
complex examples.

@randomPoison, we need to make our examples simpler here: the complexity
here makes it hard to modify the files and I feel it's hard to show
during class. I would suggest splitting this up into a very basic
example (what the birthday service was) and then add 1-2 slides with
more complex samples (if necessary). Last I taught the class, I had a
hard time a) making every example compile and b) finding time to cover
everything.

I would err on the side of makings things simple and clear.
2024-12-06 12:10:42 -08:00
380dc3c29c Add speaker notes to some concurrency pages (#2501)
Part of #1083.
2024-12-06 09:03:03 -05:00
be476391f2 Add speaker notes to flow control basics (#2498)
Part of #1083.
2024-12-06 12:46:35 +01:00
e4e6b0ce1d Add speaker notes to AIDL slide (#2494)
Part of #1083.
2024-12-05 15:59:21 -08:00
54e0eab236 Add speaker notes to JNI slide (#2495)
Part of #1083.
2024-12-05 12:30:03 -05:00
69d4fc13a4 Delete empty and unused slide (#2493)
The page is not mentioned in the `SUMMARY.md` file and has apparently
been forgotten.

We could consider adding a check for this situation, but since I don't
think it occurs very often, I don't consider it high priority.
2024-12-05 10:25:21 -05:00
d97a8fade5 Add speaker notes to the thanks page (#2497)
Part of #1083.
2024-12-05 15:24:18 +00:00
99c0948f4e Add more description of proto to the proto exercise (#2475)
This also moves the test cases into `main` so they are visible.

Fixes #2466.
2024-12-05 16:17:14 +01:00
c61204ae18 Add speaker notes to tuples and arrays (#2499)
Part of #1083.
2024-12-05 16:15:03 +01:00
d868584623 Show path to auto-generate AIDL code on slide (#2417)
This updates the surrounding text to bring it in line with the other
slides.
2024-12-03 17:01:55 +01:00
45bb2de220 Recommend newtypes over type aliases (#2476)
I don't know how controversial this is, but I would recommend against
using type aliases where a newtype can be used instead.

Personally, I don't like type aliases much since I feel they cause extra
indirection: I will inevitably have to go look up the alias the first
many times I encounter it. Nothing will tell me to apply the type alias
consistently, and I dislike having multiple names for the same thing.

But I'm sure some people love them, so now I'm just gently reminding
people that newtypes can be a better alternative.
2024-12-03 16:57:41 +01:00
c85816a01f cargo: bump the patch group across 1 directory with 12 updates (#2489)
Bumps the patch group with 12 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [anyhow](https://github.com/dtolnay/anyhow) | `1.0.91` | `1.0.93` |
| [clap](https://github.com/clap-rs/clap) | `4.5.20` | `4.5.21` |
| [mdbook](https://github.com/rust-lang/mdBook) | `0.4.40` | `0.4.43` |
| [serde](https://github.com/serde-rs/serde) | `1.0.214` | `1.0.215` |
| [serde_json](https://github.com/serde-rs/json) | `1.0.132` | `1.0.133`
|
| [csv](https://github.com/BurntSushi/rust-csv) | `1.3.0` | `1.3.1` |
| [tokio](https://github.com/tokio-rs/tokio) | `1.41.0` | `1.41.1` |
| [url](https://github.com/servo/rust-url) | `2.5.2` | `2.5.4` |
| [mockall](https://github.com/asomers/mockall) | `0.13.0` | `0.13.1` |
| [zerocopy](https://github.com/google/zerocopy) | `0.8.8` | `0.8.11` |
| [cxx](https://github.com/dtolnay/cxx) | `1.0.129` | `1.0.133` |
| [cxx-build](https://github.com/dtolnay/cxx) | `1.0.129` | `1.0.133` |

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-01 21:05:18 +00:00
5586f6c9af cargo: bump thiserror from 1.0.66 to 2.0.3 (#2488)
Bumps [thiserror](https://github.com/dtolnay/thiserror) from 1.0.66 to
2.0.3.

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-01 20:51:03 +00:00
3eb2eb8b36 cargo: bump the minor group with 2 updates (#2486)
Bumps the minor group with 2 updates:
[googletest](https://github.com/google/googletest-rust) and
[tempfile](https://github.com/Stebalien/tempfile).

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-01 20:41:54 +00:00
6c09359640 cargo: bump arm-gic from 0.1.1 to 0.1.2 in /src/exercises/bare-metal/rtc in the patch group (#2484)
Bumps the patch group in /src/exercises/bare-metal/rtc with 1 update:
[arm-gic](https://github.com/google/arm-gic).

Updates `arm-gic` from 0.1.1 to 0.1.2

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-01 20:41:24 +00:00
6ef4d79984 cargo: bump cc from 1.1.31 to 1.2.2 in /src/exercises/bare-metal/rtc in the minor group (#2483)
Bumps the minor group in /src/exercises/bare-metal/rtc with 1 update:
[cc](https://github.com/rust-lang/cc-rs).

Updates `cc` from 1.1.31 to 1.2.2

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-01 20:40:50 +00:00
095fc487f2 cargo: bump cortex-m-rt from 0.7.4 to 0.7.5 in /src/exercises/bare-metal/compass in the patch group (#2482)
Bumps the patch group in /src/exercises/bare-metal/compass with 1
update: [cortex-m-rt](https://github.com/rust-embedded/cortex-m).

Updates `cortex-m-rt` from 0.7.4 to 0.7.5

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-01 20:38:50 +00:00
9e87094544 cargo: bump cortex-m-rt from 0.7.3 to 0.7.5 in /src/bare-metal/microcontrollers/examples in the patch group (#2481)
Bumps the patch group in /src/bare-metal/microcontrollers/examples with
1 update: [cortex-m-rt](https://github.com/rust-embedded/cortex-m).

Updates `cortex-m-rt` from 0.7.3 to 0.7.5

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-01 20:38:27 +00:00
7d51d58a10 cargo: bump cc from 1.1.31 to 1.2.2 in /src/bare-metal/aps/examples in the minor group (#2480)
Bumps the minor group in /src/bare-metal/aps/examples with 1 update:
[cc](https://github.com/rust-lang/cc-rs).

Updates `cc` from 1.1.31 to 1.2.2

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-01 20:37:50 +00:00
1262da8d77 Wrap assembly comments consistently (#2430)
Some lines were much longer than others. They are now consistently
wrapped at 70 columns. Why so short, why not 80 or 90? Because we
sometimes need to browse these files during class, and there we don’t
have a lot of horizontal space when using large fonts.
2024-11-22 10:24:49 +01:00
2256525a90 Be explicit that Android examples need a Git checkout (#2465)
Without this, students will see subtle differences between what is on
the slides and what we have in the code (see #2464 for an example).
2024-11-19 13:25:44 -05:00
088169b989 Make page title more specific (#2405)
Naming the slide “Bare-Metal Android” avoids an annoying situation
when searching: before, searching for “android” would list this slide
as a top hit because it matches the search term precisely. This meant
that the whole Rust in Android section course was harder to find.

With this change, the “Welcome to Rust in Android” page becomes easier
to find.
2024-11-19 16:13:37 +00:00
6148caed7a Change tests for pattern-matching exercise (#2463)
to catch wrong `right == 0` checks.

To change the number like this catches for example a wrong
implementation only looking if `right_result` is zero, but not checking
if we are doing a division.
2024-11-18 16:11:58 +00:00
b4f07baf81 Update unsafe trait example to zerocopy version 0.8 (#2434)
Zerocopy crate version 0.8 introduced changes to its API, which caused
the example code to break.
https://github.com/google/zerocopy/discussions/1680
> AsBytes ->
[IntoBytes](https://docs.rs/zerocopy/0.8.*/zerocopy/trait.IntoBytes.html)

---------

Co-authored-by: Martin Geisler <martin@geisler.net>
2024-11-04 11:01:45 +00:00
b6b4381722 cargo: bump the minor group across 1 directory with 3 updates (#2459)
Bumps the minor group with 3 updates in the / directory:
[tokio](https://github.com/tokio-rs/tokio),
[zerocopy](https://github.com/google/zerocopy) and
[scraper](https://github.com/causal-agent/scraper).

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Andrew Walbran <qwandor@google.com>
2024-11-04 10:28:53 +00:00
f7d2ab541a cargo: bump cc from 1.1.23 to 1.1.31 in /src/bare-metal/aps/examples in the patch group (#2455)
Bumps the patch group in /src/bare-metal/aps/examples with 1 update:
[cc](https://github.com/rust-lang/cc-rs).

Updates `cc` from 1.1.23 to 1.1.31
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/rust-lang/cc-rs/releases">cc's
releases</a>.</em></p>
<blockquote>
<h2>cc-v1.1.31</h2>
<h3>Other</h3>
<ul>
<li>Add comment explaining why cc does not rebuild on env PATH change
(<a
href="https://redirect.github.com/rust-lang/cc-rs/pull/1247">#1247</a>)</li>
</ul>
<h2>cc-v1.1.30</h2>
<h3>Other</h3>
<ul>
<li>Don't pass -fPIC by default on wasm (<a
href="https://redirect.github.com/rust-lang/cc-rs/pull/1245">#1245</a>)</li>
</ul>
<h2>cc-v1.1.29</h2>
<h3>Other</h3>
<ul>
<li>Regenerate target info (<a
href="https://redirect.github.com/rust-lang/cc-rs/pull/1243">#1243</a>)</li>
</ul>
<h2>cc-v1.1.28</h2>
<h3>Other</h3>
<ul>
<li>Environment variables: For one accepting boolean, treat
&quot;0&quot;, &quot;false&quot; and empty env as false (<a
href="https://redirect.github.com/rust-lang/cc-rs/pull/1238">#1238</a>)</li>
</ul>
<h2>cc-v1.1.27</h2>
<h3>Other</h3>
<ul>
<li>Revert &quot;Use debug version of MSVC runtime library on debug (<a
href="https://redirect.github.com/rust-lang/cc-rs/pull/1231">#1231</a>)&quot;
(<a
href="https://redirect.github.com/rust-lang/cc-rs/pull/1237">#1237</a>)</li>
<li>Disable <code>CC_ENABLE_DEBUG_OUTPUT</code> if it is set to
&quot;0&quot; (<a
href="https://redirect.github.com/rust-lang/cc-rs/pull/1234">#1234</a>)</li>
</ul>
<h2>cc-v1.1.26</h2>
<h3>Other</h3>
<ul>
<li>Use debug version of MSVC runtime library on debug (<a
href="https://redirect.github.com/rust-lang/cc-rs/pull/1231">#1231</a>)</li>
</ul>
<h2>cc-v1.1.25</h2>
<h3>Other</h3>
<ul>
<li>Remove incorrect &quot;lib&quot; prefixes in CXXSTDLIB doc comments
(<a
href="https://redirect.github.com/rust-lang/cc-rs/pull/1228">#1228</a>)</li>
</ul>
<h2>cc-v1.1.24</h2>
<h3>Other</h3>
<ul>
<li>Fix wasm32-wasip1-threads: shared-memory disallowed due to not
compiled with 'atomics' or 'bulk-memory' features (<a
href="https://redirect.github.com/rust-lang/cc-rs/pull/1221">#1221</a>)</li>
<li>Reduce the need for the host target triple (<a
href="https://redirect.github.com/rust-lang/cc-rs/pull/1224">#1224</a>)</li>
<li>Add auto cancellation for CI jobs (<a
href="https://redirect.github.com/rust-lang/cc-rs/pull/1222">#1222</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md">cc's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/rust-lang/cc-rs/compare/cc-v1.1.30...cc-v1.1.31">1.1.31</a>
- 2024-10-19</h2>
<h3>Other</h3>
<ul>
<li>Add comment explaining why cc does not rebuild on env PATH change
(<a
href="https://redirect.github.com/rust-lang/cc-rs/pull/1247">#1247</a>)</li>
</ul>
<h2><a
href="https://github.com/rust-lang/cc-rs/compare/cc-v1.1.29...cc-v1.1.30">1.1.30</a>
- 2024-10-11</h2>
<h3>Other</h3>
<ul>
<li>Don't pass -fPIC by default on wasm (<a
href="https://redirect.github.com/rust-lang/cc-rs/pull/1245">#1245</a>)</li>
</ul>
<h2><a
href="https://github.com/rust-lang/cc-rs/compare/cc-v1.1.28...cc-v1.1.29">1.1.29</a>
- 2024-10-11</h2>
<h3>Other</h3>
<ul>
<li>Regenerate target info (<a
href="https://redirect.github.com/rust-lang/cc-rs/pull/1243">#1243</a>)</li>
</ul>
<h2><a
href="https://github.com/rust-lang/cc-rs/compare/cc-v1.1.27...cc-v1.1.28">1.1.28</a>
- 2024-10-06</h2>
<h3>Other</h3>
<ul>
<li>Environment variables: For one accepting boolean, treat
&quot;0&quot;, &quot;false&quot; and empty env as false (<a
href="https://redirect.github.com/rust-lang/cc-rs/pull/1238">#1238</a>)</li>
</ul>
<h2><a
href="https://github.com/rust-lang/cc-rs/compare/cc-v1.1.26...cc-v1.1.27">1.1.27</a>
- 2024-10-06</h2>
<h3>Other</h3>
<ul>
<li>Revert &quot;Use debug version of MSVC runtime library on debug (<a
href="https://redirect.github.com/rust-lang/cc-rs/pull/1231">#1231</a>)&quot;
(<a
href="https://redirect.github.com/rust-lang/cc-rs/pull/1237">#1237</a>)</li>
<li>Disable <code>CC_ENABLE_DEBUG_OUTPUT</code> if it is set to
&quot;0&quot; (<a
href="https://redirect.github.com/rust-lang/cc-rs/pull/1234">#1234</a>)</li>
</ul>
<h2><a
href="https://github.com/rust-lang/cc-rs/compare/cc-v1.1.25...cc-v1.1.26">1.1.26</a>
- 2024-10-06</h2>
<h3>Other</h3>
<ul>
<li>Use debug version of MSVC runtime library on debug (<a
href="https://redirect.github.com/rust-lang/cc-rs/pull/1231">#1231</a>)</li>
</ul>
<h2><a
href="https://github.com/rust-lang/cc-rs/compare/cc-v1.1.24...cc-v1.1.25">1.1.25</a>
- 2024-10-05</h2>
<h3>Other</h3>
<ul>
<li>Remove incorrect &quot;lib&quot; prefixes in CXXSTDLIB doc comments
(<a
href="https://redirect.github.com/rust-lang/cc-rs/pull/1228">#1228</a>)</li>
</ul>
<h2><a
href="https://github.com/rust-lang/cc-rs/compare/cc-v1.1.23...cc-v1.1.24">1.1.24</a>
- 2024-10-01</h2>
<h3>Other</h3>
<ul>
<li>Fix wasm32-wasip1-threads: shared-memory disallowed due to not
compiled with 'atomics' or 'bulk-memory' features (<a
href="https://redirect.github.com/rust-lang/cc-rs/pull/1221">#1221</a>)</li>
<li>Reduce the need for the host target triple (<a
href="https://redirect.github.com/rust-lang/cc-rs/pull/1224">#1224</a>)</li>
<li>Add auto cancellation for CI jobs (<a
href="https://redirect.github.com/rust-lang/cc-rs/pull/1222">#1222</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="c07ab0ea4e"><code>c07ab0e</code></a>
chore: release v1.1.31 (<a
href="https://redirect.github.com/rust-lang/cc-rs/issues/1248">#1248</a>)</li>
<li><a
href="e53eba374f"><code>e53eba3</code></a>
Add comment explaining why cc does not rebuild on env PATH change (<a
href="https://redirect.github.com/rust-lang/cc-rs/issues/1247">#1247</a>)</li>
<li><a
href="9aab24207c"><code>9aab242</code></a>
chore: release (<a
href="https://redirect.github.com/rust-lang/cc-rs/issues/1246">#1246</a>)</li>
<li><a
href="d0048ab136"><code>d0048ab</code></a>
Don't pass -fPIC by default on wasm (<a
href="https://redirect.github.com/rust-lang/cc-rs/issues/1245">#1245</a>)</li>
<li><a
href="53a0b97ef8"><code>53a0b97</code></a>
chore: release (<a
href="https://redirect.github.com/rust-lang/cc-rs/issues/1244">#1244</a>)</li>
<li><a
href="7ad4677a4e"><code>7ad4677</code></a>
Regenerate target info (<a
href="https://redirect.github.com/rust-lang/cc-rs/issues/1243">#1243</a>)</li>
<li><a
href="218365e583"><code>218365e</code></a>
chore: release (<a
href="https://redirect.github.com/rust-lang/cc-rs/issues/1239">#1239</a>)</li>
<li><a
href="1a6a7103d9"><code>1a6a710</code></a>
Environment variables: For one accepting boolean, treat &quot;0&quot;,
&quot;false&quot; and empt...</li>
<li><a
href="3bbb3849ae"><code>3bbb384</code></a>
chore: release (<a
href="https://redirect.github.com/rust-lang/cc-rs/issues/1235">#1235</a>)</li>
<li><a
href="2b94f52d47"><code>2b94f52</code></a>
Revert &quot;Use debug version of MSVC runtime library on debug (<a
href="https://redirect.github.com/rust-lang/cc-rs/issues/1231">#1231</a>)&quot;
(<a
href="https://redirect.github.com/rust-lang/cc-rs/issues/1237">#1237</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/rust-lang/cc-rs/compare/cc-v1.1.23...cc-v1.1.31">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=cc&package-manager=cargo&previous-version=1.1.23&new-version=1.1.31)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

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


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-04 10:03:21 +00:00
5a57631911 build(deps): bump crate-ci/typos from 1.24.6 to 1.26.8 (#2451)
Bumps [crate-ci/typos](https://github.com/crate-ci/typos) from 1.24.6 to
1.26.8.
2024-11-01 13:54:06 +00:00
f8882190f3 Updates for Rust 1.82 (#2449)
Rust 1.82 adds `&raw` expressions, and marks some attributes as unsafe.
2024-11-01 08:39:56 +01:00
2bba470415 cargo: bump panic-halt from 0.2.0 to 1.0.0 in /src/bare-metal/alloc-example (#2458)
Bumps [panic-halt](https://github.com/korken89/panic-halt) from 0.2.0 to
1.0.0.

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-01 08:34:33 +01:00
e47a557e89 cargo: bump panic-halt from 0.2.0 to 1.0.0 in /src/bare-metal/microcontrollers/examples (#2457)
Bumps [panic-halt](https://github.com/korken89/panic-halt) from 0.2.0 to
1.0.0.

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-01 08:33:50 +01:00
9da4562400 cargo: bump cc from 1.1.23 to 1.1.31 in /src/exercises/bare-metal/rtc in the patch group (#2453)
Bumps the patch group in /src/exercises/bare-metal/rtc with 1 update:
[cc](https://github.com/rust-lang/cc-rs).

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-01 08:33:28 +01:00
afec47fccc cargo: bump panic-halt from 0.2.0 to 1.0.0 in /src/exercises/bare-metal/compass (#2452)
Bumps [panic-halt](https://github.com/korken89/panic-halt) from 0.2.0 to
1.0.0.

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-01 08:32:50 +01:00
9dcfc7e4d8 cargo: bump the patch group with 11 updates (#2456)
Bumps the patch group with 11 updates:

| Package | From | To |
| --- | --- | --- |
| [anyhow](https://github.com/dtolnay/anyhow) | `1.0.89` | `1.0.91` |
| [clap](https://github.com/clap-rs/clap) | `4.5.18` | `4.5.20` |
| [regex](https://github.com/rust-lang/regex) | `1.11.0` | `1.11.1` |
| [serde](https://github.com/serde-rs/serde) | `1.0.210` | `1.0.214` |
| [serde_json](https://github.com/serde-rs/json) | `1.0.128` | `1.0.132`
|
| [pulldown-cmark](https://github.com/raphlinus/pulldown-cmark) |
`0.12.1` | `0.12.2` |
| [thiserror](https://github.com/dtolnay/thiserror) | `1.0.64` |
`1.0.66` |
| [reqwest](https://github.com/seanmonstar/reqwest) | `0.12.8` |
`0.12.9` |
| [futures-util](https://github.com/rust-lang/futures-rs) | `0.3.30` |
`0.3.31` |
| [cxx](https://github.com/dtolnay/cxx) | `1.0.128` | `1.0.129` |
| [cxx-build](https://github.com/dtolnay/cxx) | `1.0.128` | `1.0.129` |

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-01 08:29:38 +01:00
1d7c9163f5 Simplify imports by importing fewer items directly (#2404)
When reading the code without an IDE, I find it useful to use explicit
module names, especially when items come from the standard library.

So `io::Error` instead of just `Error`, especially when people have
just been told about `std::error::Error` as well.

I also omitted most single-use items: I find it has less cognitive
overhead to say “we import `fmt`” and then later use `fmt::Display`
and `fmt::Formatter` in the code. It’s clear from the name that these
two things have something to do with formatting.

Finally, I made a few usages more consistent so that we refer to each
item in the same way within a single codeblock.
2024-10-29 11:19:58 +01:00
7a462efb57 Ensure examples compile on latest version of AOSP (#2414)
This is part of #2398.
2024-10-28 19:35:54 +01:00
c16c07a53a The Error trait is in core as of Rust 1.81.0 (#2408) 2024-10-28 19:24:36 +01:00
905784e601 Remove open-ended Android exercise (#2418)
Despite good intentions, I have not actually been able to make this
work in a classroom.

I suggest we remove it for now and later replace it with a guided
exercise: something where we ask students to write a AIDL client for a
simple system service.
2024-10-28 19:24:30 +01:00
6e829ff89a Show expressions trees (#2425)
While giving the class, I noticed that a few people were not used to
this kind of recursive structures. A diagram could help here.
2024-10-28 19:24:22 +01:00
8bfff0d95a Consistently inline formatting arguments (#2413) 2024-10-21 20:01:21 +02:00
ce56ea551e Use both break and continue for consistency (#2412)
To me, this little change makes it a little clearer that we either
print something, we break, or we continue in the loop.
2024-10-21 19:57:19 +02:00
ec6cb024e8 Apply clippy::semicolon_if_nothing_returned (#2410)
This is for consistency: if a block returns `()`, and the last
expression of the block also returns `()`, then the final `;` can be
left out.

However, this is a little confusing (I was asked about this in a class
today) and it is inconsistent.

See

https://rust-lang.github.io/rust-clippy/master/index.html#/semicolon_if_nothing_returned
for details.
2024-10-21 19:57:01 +02:00