1
0
mirror of https://github.com/google/comprehensive-rust.git synced 2025-06-14 21:35:00 +02:00
Commit Graph

2276 Commits

Author SHA1 Message Date
cf4c04ea19 Add speaker note about returning values from loop 2025-02-26 16:48:45 -08:00
241c28ed7e Move unreachable! to speaker notes (#2628) 2025-02-26 12:22:13 -08:00
d7a88211ff Update AIDL intermediates path (#2639)
---------

Co-authored-by: Martin Geisler <mgeisler@google.com>
2025-02-26 17:28:11 +00:00
e52f5ea9e3 Fix vendored crates path (#2638) 2025-02-26 09:17:49 -08:00
32a16c95dc Add note about AIDL methods taking &self (#2641) 2025-02-26 09:17:22 -08:00
5f6b9333fa Add Android.bp entries for googletest and mockall example tests (#2643) 2025-02-26 09:11:48 -08:00
4ee2337c63 Add missing static_libs dep for libbirthday example (#2640) 2025-02-26 09:07:36 -08:00
7f8596e9bc Use jni_libs for JNI dependency (#2637) 2025-02-26 09:06:09 -08:00
a10b4e6e21 Reorder CXX build steps to show genrules first (#2642) 2025-02-26 09:05:36 -08:00
08c613326a Remove confusing speaker note from Shared-References slide (#2659)
Dangling references are discussed later in the "Borrowing" segment.

Fixes #2656
2025-02-26 11:48:54 -05:00
1a64c9ba9a Use dbg! instead of println! in Day 2. (#2657)
Part of #2478 to clean up code blocks when all that is needed is a
trivial debug print statement.

As mentioned in previous related PRs, in some places I've opted to
retain the use of println! because dbg! makes it less readable.

Co-authored-by: Eric Githinji <egithinji@google.com>
2025-02-25 21:12:06 +00:00
32a8b4bf13 Use chopsticks and limit philosophers. (#2655)
Use chopstick to explain why 2 are needed to eat.
Limit async to 2 philosophers so they can deadlock in tokio.
(Tested with [3, 4, 5] philosophers and they all were able to run
without deadlock
with lock ordering disabled.)

---------

Co-authored-by: Sterling Stein <scubed2+git@gmail.com>
2025-02-24 16:13:16 +00:00
f531d4dfd7 Use dbg! instead of println! in Day 1 aft session (#2654)
Part of #2478 to clean up code blocks when all that is needed is a
trivial debug print statement.

In certain slides (8.1, 9.2, 9.3, 10.5) I've opted to retain the use of
println! because dbg! makes it less readable. The
dbg! macro uses pretty-printing by default and this results in a simple
array such as the one in 8.1 being printed vertically instead of a
cleaner one-liner.

Co-authored-by: Eric Githinji <egithinji@google.com>
2025-02-24 14:13:43 +00:00
0daab179e9 Use dbg! instead of println! in Day 1 mng session (#2652)
As mentioned in #2478, this cleans up the code blocks when all that is
needed is a trivial debug print statement.
Only making changes to Day 1 morning session so that I can get feedback
before proceeding with the rest of the course.

---------

Co-authored-by: Eric Githinji <egithinji@google.com>
2025-02-24 14:12:56 +00:00
49e4efcd9e Split C interop slides into smaller slides. (#2645) 2025-02-22 19:48:10 +00:00
63d716de90 Preserve line numbers by not injecting a newline (#2653)
The `dbg!` macro, being deployed more widely in #2478, shows the line
number. But if we inject `#![allow(..)]\n` then the printed numbers do
not match those in the textarea. It turns out that `\n` is not required!

cc @egithinji
2025-02-21 15:32:31 -05:00
63cc474ba0 closures/exercise.rs: drop trait bounds from struct definition (#2649)
This is more idiomatic than what we had before.

We keep the trait bounds for the inherent impl, because the new method
can use them to guide inference of unannotated closure arguments.
2025-02-20 21:51:39 +00:00
e16dc70903 Clarify and correct closure syntax slide (#2647)
Simplify the example, adding demonstration of return type annotation and
removing confusing "lambda" reference from speaker notes.
2025-02-20 21:50:38 +00:00
4f8b09009a drop: avoid confusing names (#2648)
The Droppables are already named with letters, so hopefully referencing
the nesting order of blocks instead of giving them names is clearer.
2025-02-20 20:21:32 +00:00
44a79741ff Be more consistent about tests vs. main (#2644)
The content slides all use `fn main`, with the exception of the testing
segment. But with this change, where it makes sense exercises use tests
instead, and not both tests and `fn main`.

A small change in `book.js` supports running tests when a code sample
does not have `fn main` but does have `#[test]`, so these work
naturally.

Fixes #1581.
2025-02-18 20:13:16 +00:00
699c5137c7 Remove nesting from let else example (#2600) 2025-02-11 10:45:04 -08:00
d732821edb Fix note about undefined behavior (#2632) 2025-02-11 10:41:33 -08:00
d998022f75 Move use statements to beginning of widgets.rs (#2631) 2025-02-11 10:41:11 -08:00
cdfe3e7359 Fix bug in speaker notes that broke navigating to next slide (#2634)
Change this selector to use the ~= selector to test if a white space
separated word "prev" or "next" is contained

Fixes a speaker notes bug that did not allow going to the next slide in
the speaker notes.
The reason for that is that the "rel" attribute contained "prev"
respective "next prefetch".

See:
https://developer.mozilla.org/en-US/docs/Web/CSS/Attribute_selectors#attrvalue_2

This fixes part of #2004 when going to the right (containing
"prefetch").
2025-02-08 11:47:02 +01:00
f9aca3738a Reorganize borrowck notes and add note about re-borrowing (#2635)
The speaker notes on the borrowck slide are a bit hard to read since
it's a big block of bulleted points. I've reorganized the notes to be a
bit easier to read by making some of the bullet points nested and by
moving some of the points to the "More to Explore" section. I've also
added a note on re-borrowing since students sometimes ask about it, and
I've added some playground links to demonstrate some of the points.
2025-02-07 17:05:27 -05:00
386757e697 Add note that borrock error can be triggered by direct mutation (#2629) 2025-02-07 11:15:00 -08:00
d603faca56 Add link to GridRefIter example (#2633) 2025-02-07 11:04:32 -08:00
c05f0b6f02 Add main method to code snippet (#2630)
The code snippet wouldn't compile/run directly because of a missing
`main` method.

Also remove unnecessary `&`.
2025-02-07 10:08:10 +01:00
af6dff53c2 update to mdbook-0.4.44 and sync book.js and index.hbs (#2610)
mdbook in CI pipeline is updated to mdbook-0.4.44
  - reran mdbook init --theme
  - keep playground improvements
- keep language selector and suggest edit / edit to translation button
text
  - improvement: toc is in separate js file, makes html file way smaller
  - additionally updated to mdbook-i18n-helpers-0.3.5

relevant upstream changes that are used:
- https://github.com/rust-lang/mdBook/pull/2414
- https://github.com/rust-lang/mdBook/pull/2421
- https://github.com/rust-lang/mdBook/pull/2454
- https://github.com/rust-lang/mdBook/pull/2463
2025-02-07 10:07:41 +01:00
f1459c54e1 Remove slide on shadowing (#2596) 2025-02-06 12:39:27 -08:00
72c7618cb4 Replace unimplemented with todo (#2594) 2025-02-06 12:35:28 -08:00
3229fc7c05 Fix tyop in speaker notes (#2627) 2025-02-06 11:01:19 -08:00
06bdb40442 Make code in expression evaluation exercise editable (#2601) 2025-02-06 11:00:46 -08:00
6a25d7be04 Minor whitespace changes (#2595) 2025-02-06 09:52:29 -08:00
e1ed6eaf47 Move struct update syntax to speaker notes (#2597) 2025-02-06 09:51:43 -08:00
ca137b4807 Move slide on blocks to beginning of control flow section (#2598) 2025-02-06 09:29:44 -08:00
4ec257942e Tests for playground are using a mock response (#2611)
The official playground quite often provides a timeout error as in
https://github.com/google/comprehensive-rust/issues/2549

This is mocking/overriding the response from the playground for success
and failure messages to avoid the server provided timeouts. As far as I
see most responses from the playground are delivered below 10 seconds
(but varies a lot...)

There still might be timeouts and I know of the following knobs that can
be tuned
- wdio waits for 10 seconds until it aborts the current attemp (e.g. to
wait for the text to be as expected)

347de61d13/tests/wdio.conf.ts (L98)
- another timeout is the 15 second timeout for fetching the result from
the playground - this is not overriden by the mock (currently, pending
https://github.com/webdriverio/webdriverio/issues/14090 which would
allow for an immediate mock response without waiting for the remote
endpoint)

347de61d13/theme/book.js (L31)
2025-02-06 12:33:33 +01:00
553e3c5b10 Add slide reviewing irrefutable patterns (#2608) 2025-02-05 16:16:38 -08:00
28ab749338 Add "More to Explore" section to struct patterns slide (#2604) 2025-02-05 16:12:01 -08:00
afe206beab Add division example to expression exercise (#2605) 2025-02-05 16:11:42 -08:00
8f01344757 Add speaker note about multiple impl blocks (#2606) 2025-02-05 16:10:55 -08:00
12fb4379f7 Add speaker note with manual derive example (#2607) 2025-02-05 16:10:25 -08:00
bb8cbbcb7c Change values of example array in for loop slide (#2592) 2025-02-05 16:09:56 -08:00
cdab1a4ce5 Make nested array example editable (#2593) 2025-02-05 16:09:45 -08:00
fd7cb04a62 Improve explanation of lifetimes (#2584)
This approach seems to balance formalism with understanding. That is, it
doesn't mention contravariance, but suggests that lifetime annotations
in parameters and return values mean "opposite" things. It also
leverages the understanding that types must be specified in function
signatures, and are used to check types in the function body and at call
sites.
2025-02-05 10:58:22 -05:00
715a23e7a8 Create install-mdbook.sh and lock to the current versions used in the CI (#2626)
Move mdbook installation into a script and use exact versions from the
CI.
Update README.md to instruct developers to use the same versions as the
CI to sync both environments.
This is related to #2620 and it fixes #2588
2025-02-05 15:33:28 +01:00
c07ac40f90 Split large unsafe function slide (#2406)
The old slice was doing several things at the same time: demonstrating
both external functions as well as unsafe Rust functions.

We now treat those two topics separately. In addition, the “Calling
Unsafe Functions” heading has become its own slide with a non-crashing
example that shows what can go wrong if an argument is misunderstood
in a call to an unsafe function. The old example didn’t actually
illustrate the danger clearly: it would produce mangled UTF-8 output,
which the Playground server refuses to print.

Part of #2445.

---------

Co-authored-by: Dustin J. Mitchell <djmitche@google.com>
Co-authored-by: Andrew Walbran <qwandor@google.com>
2025-02-05 14:00:14 +00:00
153bd63cc0 tests: rename to generic-page.test.ts as only *.test.js is tested (#2625)
the filename without .test. was introduced in #2621
2025-02-04 08:19:53 -05:00
2cf9a35b23 Check if menu bar buttons are display and functionality works (#2621)
Test the main page for existence of
- theme button visible
  - clicking shows the list of themes
- search button visible
  - and tests successful search for "Welcome"
- language button visible
  - clicking shows the list of languages

this is testing functionality missing in dev environments in
https://github.com/google/comprehensive-rust/issues/2588 and is relevant
for https://github.com/google/comprehensive-rust/issues/2620
2025-02-04 10:36:34 +01:00
466f213927 cargo: bump openssl from 0.10.66 to 0.10.70 in the cargo group (#2624)
Bumps the cargo group with 1 update:
[openssl](https://github.com/sfackler/rust-openssl).

Updates `openssl` from 0.10.66 to 0.10.70
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/sfackler/rust-openssl/releases">openssl's
releases</a>.</em></p>
<blockquote>
<h2>openssl v0.10.70</h2>
<h2>What's Changed</h2>
<ul>
<li>Attempt to fix CI by pinning to the Ubuntu 22.04 image by <a
href="https://github.com/alex"><code>@​alex</code></a> in <a
href="https://redirect.github.com/sfackler/rust-openssl/pull/2357">sfackler/rust-openssl#2357</a></li>
<li>Remove EC_METHOD and EC_GROUP_new for LibreSSL 4.1 by <a
href="https://github.com/botovq"><code>@​botovq</code></a> in <a
href="https://redirect.github.com/sfackler/rust-openssl/pull/2356">sfackler/rust-openssl#2356</a></li>
<li>Test against 3.4.0 final release by <a
href="https://github.com/alex"><code>@​alex</code></a> in <a
href="https://redirect.github.com/sfackler/rust-openssl/pull/2359">sfackler/rust-openssl#2359</a></li>
<li>Expose <code>SslMethod::{dtls_client,dtls_server}</code> by <a
href="https://github.com/alex"><code>@​alex</code></a> in <a
href="https://redirect.github.com/sfackler/rust-openssl/pull/2358">sfackler/rust-openssl#2358</a></li>
<li>Fix lifetimes in ssl::select_next_proto by <a
href="https://github.com/sfackler"><code>@​sfackler</code></a> in <a
href="https://redirect.github.com/sfackler/rust-openssl/pull/2360">sfackler/rust-openssl#2360</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.69...openssl-v0.10.70">https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.69...openssl-v0.10.70</a></p>
<h2>openssl v0.10.69</h2>
<h2>What's Changed</h2>
<ul>
<li>build(deps): Update <code>openssl-macro</code> to version
<code>0.1.1</code> by <a
href="https://github.com/caspermeijn"><code>@​caspermeijn</code></a> in
<a
href="https://redirect.github.com/sfackler/rust-openssl/pull/2324">sfackler/rust-openssl#2324</a></li>
<li>Enable set_alpn_select_callback for BoringSSL by <a
href="https://github.com/ViktoriiaKovalova"><code>@​ViktoriiaKovalova</code></a>
in <a
href="https://redirect.github.com/sfackler/rust-openssl/pull/2327">sfackler/rust-openssl#2327</a></li>
<li>Switch the test to use prime256v1 based key by <a
href="https://github.com/dcermak"><code>@​dcermak</code></a> in <a
href="https://redirect.github.com/sfackler/rust-openssl/pull/2330">sfackler/rust-openssl#2330</a></li>
<li>Expose EVP_DigestSqueeze from Hasher by <a
href="https://github.com/initsecret"><code>@​initsecret</code></a> in <a
href="https://redirect.github.com/sfackler/rust-openssl/pull/2275">sfackler/rust-openssl#2275</a></li>
<li>Expose SSL_CTX_load_verify_locations by <a
href="https://github.com/sfackler"><code>@​sfackler</code></a> in <a
href="https://redirect.github.com/sfackler/rust-openssl/pull/2353">sfackler/rust-openssl#2353</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/caspermeijn"><code>@​caspermeijn</code></a>
made their first contribution in <a
href="https://redirect.github.com/sfackler/rust-openssl/pull/2324">sfackler/rust-openssl#2324</a></li>
<li><a
href="https://github.com/ViktoriiaKovalova"><code>@​ViktoriiaKovalova</code></a>
made their first contribution in <a
href="https://redirect.github.com/sfackler/rust-openssl/pull/2327">sfackler/rust-openssl#2327</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.68...openssl-v0.10.69">https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.68...openssl-v0.10.69</a></p>
<h2>openssl-v0.10.68</h2>
<h2>What's Changed</h2>
<ul>
<li>fixes <a
href="https://redirect.github.com/sfackler/rust-openssl/issues/2317">#2317</a>
-- restore compatibility with our MSRV and release openssl 0.9.68 by <a
href="https://github.com/alex"><code>@​alex</code></a> in <a
href="https://redirect.github.com/sfackler/rust-openssl/pull/2318">sfackler/rust-openssl#2318</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.67...openssl-v0.10.68">https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.67...openssl-v0.10.68</a></p>
<h2>openssl-v0.10.67</h2>
<h2>What's Changed</h2>
<ul>
<li>Added a utility function to ensure we never have an issue with
0-length slices from pointers again by <a
href="https://github.com/alex"><code>@​alex</code></a> in <a
href="https://redirect.github.com/sfackler/rust-openssl/pull/2268">sfackler/rust-openssl#2268</a></li>
<li>Fix CI for the latest rustc by <a
href="https://github.com/alex"><code>@​alex</code></a> in <a
href="https://redirect.github.com/sfackler/rust-openssl/pull/2271">sfackler/rust-openssl#2271</a></li>
<li>Add binding for EVP_DigestSqueeze by <a
href="https://github.com/initsecret"><code>@​initsecret</code></a> in <a
href="https://redirect.github.com/sfackler/rust-openssl/pull/2270">sfackler/rust-openssl#2270</a></li>
<li>libressl 4.0: const correctness for X509_LOOKUP_METHOD by <a
href="https://github.com/botovq"><code>@​botovq</code></a> in <a
href="https://redirect.github.com/sfackler/rust-openssl/pull/2276">sfackler/rust-openssl#2276</a></li>
<li>Bump hex dev-dependency version by <a
href="https://github.com/alex"><code>@​alex</code></a> in <a
href="https://redirect.github.com/sfackler/rust-openssl/pull/2277">sfackler/rust-openssl#2277</a></li>
<li>Raise bindgen version by <a
href="https://github.com/alex"><code>@​alex</code></a> in <a
href="https://redirect.github.com/sfackler/rust-openssl/pull/2278">sfackler/rust-openssl#2278</a></li>
<li>Ensure Rsa::check_key doesn't leave errors on the stack by <a
href="https://github.com/alex"><code>@​alex</code></a> in <a
href="https://redirect.github.com/sfackler/rust-openssl/pull/2279">sfackler/rust-openssl#2279</a></li>
<li>Update some docs to use the corresponds macro by <a
href="https://github.com/rushilmehra"><code>@​rushilmehra</code></a> in
<a
href="https://redirect.github.com/sfackler/rust-openssl/pull/2282">sfackler/rust-openssl#2282</a></li>
<li>Don't leave errors on the stack in
<code>MdCtxRef::digest_verify_final</code> by <a
href="https://github.com/alex"><code>@​alex</code></a> in <a
href="https://redirect.github.com/sfackler/rust-openssl/pull/2283">sfackler/rust-openssl#2283</a></li>
<li>Adjustments for LibreSSL 4 by <a
href="https://github.com/botovq"><code>@​botovq</code></a> in <a
href="https://redirect.github.com/sfackler/rust-openssl/pull/2287">sfackler/rust-openssl#2287</a></li>
<li>Explicit rustfmt config by <a
href="https://github.com/kornelski"><code>@​kornelski</code></a> in <a
href="https://redirect.github.com/sfackler/rust-openssl/pull/2285">sfackler/rust-openssl#2285</a></li>
<li>add basic EVP_KDF bindings by <a
href="https://github.com/reaperhulk"><code>@​reaperhulk</code></a> in <a
href="https://redirect.github.com/sfackler/rust-openssl/pull/2289">sfackler/rust-openssl#2289</a></li>
<li>add ossl3 thread pool bindings by <a
href="https://github.com/reaperhulk"><code>@​reaperhulk</code></a> in <a
href="https://redirect.github.com/sfackler/rust-openssl/pull/2293">sfackler/rust-openssl#2293</a></li>
<li>add argon2id support for ossl 3.2+ by <a
href="https://github.com/reaperhulk"><code>@​reaperhulk</code></a> in <a
href="https://redirect.github.com/sfackler/rust-openssl/pull/2290">sfackler/rust-openssl#2290</a></li>
<li>fix 3.2.0 thread support and simplify by <a
href="https://github.com/reaperhulk"><code>@​reaperhulk</code></a> in <a
href="https://redirect.github.com/sfackler/rust-openssl/pull/2294">sfackler/rust-openssl#2294</a></li>
<li>add libctx arg to argon2id by <a
href="https://github.com/reaperhulk"><code>@​reaperhulk</code></a> in <a
href="https://redirect.github.com/sfackler/rust-openssl/pull/2295">sfackler/rust-openssl#2295</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="a4d399b0f1"><code>a4d399b</code></a>
Release openssl v0.10.70</li>
<li><a
href="c9a33e2860"><code>c9a33e2</code></a>
Release openssl-sys v0.9.105</li>
<li><a
href="f014afb230"><code>f014afb</code></a>
Merge pull request <a
href="https://redirect.github.com/sfackler/rust-openssl/issues/2360">#2360</a>
from sfackler/fix-alpn-lifetimes</li>
<li><a
href="8e6e30bbf7"><code>8e6e30b</code></a>
Fix lifetimes in ssl::select_next_proto</li>
<li><a
href="1aff2801ca"><code>1aff280</code></a>
Merge pull request <a
href="https://redirect.github.com/sfackler/rust-openssl/issues/2358">#2358</a>
from alex/expose-dlts</li>
<li><a
href="16ca5b278b"><code>16ca5b2</code></a>
Merge pull request <a
href="https://redirect.github.com/sfackler/rust-openssl/issues/2359">#2359</a>
from sfackler/alex-patch-1</li>
<li><a
href="4c9fbb0c18"><code>4c9fbb0</code></a>
Test against 3.4.0 final release</li>
<li><a
href="5ecb31d3fd"><code>5ecb31d</code></a>
Update openssl/src/ssl/mod.rs</li>
<li><a
href="4830f5bb93"><code>4830f5b</code></a>
Expose <code>SslMethod::{dtls_client,dtls_server}</code></li>
<li><a
href="bab03c4093"><code>bab03c4</code></a>
Merge pull request <a
href="https://redirect.github.com/sfackler/rust-openssl/issues/2356">#2356</a>
from botovq/rm-ec-method</li>
<li>Additional commits viewable in <a
href="https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.66...openssl-v0.10.70">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=openssl&package-manager=cargo&previous-version=0.10.66&new-version=0.10.70)](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
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-02-03 13:57:43 -05:00