1
0
mirror of https://github.com/google/comprehensive-rust.git synced 2025-03-23 15:14:35 +02:00

1087 Commits

Author SHA1 Message Date
dependabot[bot]
afe9814ef0
cargo: bump the patch group in /src/exercises/bare-metal/rtc with 1 update (#1852)
Bumps the patch group in /src/exercises/bare-metal/rtc with 1 update:
[cc](https://github.com/rust-lang/cc-rs).

Updates `cc` from 1.0.83 to 1.0.88

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-26 10:51:48 +00:00
dependabot[bot]
a5d86d36df
cargo: bump the patch group in /src/bare-metal/aps/examples with 1 update (#1851)
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.0.83 to 1.0.88

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-26 10:51:06 +00:00
Adrian Taylor
3afdabf391
Update cargo.md to fix typos (#1848) 2024-02-23 11:18:04 -08:00
Nicole L
5ecdddf9c8
Remove tangential text from if slide (#1840) 2024-02-23 08:53:26 -08:00
Martin Geisler
099ca497f2
Fix typo in cargo.md (#1847) 2024-02-23 14:15:58 +00:00
Henri F
847e1a038e
Fix definition of Rust Fundamentals in glossary.md (#1844)
Small nitpick: Days 1 to **4** are Rust Fundamentals
2024-02-23 10:06:44 +01:00
Nicole L
d75dd5d681
Flesh out for loop example (#1841)
* Add example of iterating over a collection.
* Update speaker notes to call out the use of iterators.

I think it's useful to call out that `for` loops primarily are used to
iterate over a collection of objects, even though we haven't yet talked
about any concrete collection types at this point. I think using the
array literal syntax is simple enough to understand that it should be
quick to explain when we get to this slide.
2024-02-22 10:49:49 -05:00
Nicole L
9023dd9caa
Tweak timings of exercises to better reflect teaching times (#1839)
A few of the early exercises had much larger estimates than were
actually necessary for the super simple early exercises. I've gone
through and reviewed the time estimates for exercises and tweaked the
estimates based on how much time students have actually needed in my
classes so far.
2024-02-22 10:21:39 -05:00
Martin Geisler
8670d2f9d9
Add translation comment to glossary (#1831)
With https://github.com/google/mdbook-i18n-helpers/pull/107 merged, we
can begin adding comments for the translators to our Markdown files.
2024-02-22 15:10:01 +01:00
Nicole L
e7076af00f
Move hello world example to second section (#1838)
The current location for the hello world example is awkward since the
two surrounding pages are both talking about Rust from a high level
without talking about syntax at all. I think starting the second section
(types and values) with the hello world example would help the first
section flow more smoothly.
2024-02-21 16:54:11 -05:00
Michael Graf
7fb4ad9ed2
Update user-defined-types/exercise.md (#1835)
Allow us to edit so we can complete the exercise :)
2024-02-20 22:08:39 +00:00
Jean Carlo Vicelli
c6ef83e512
Update exercise to add also the tests, in a TDD style (#1832)
Having the tests only in the result brings less value, so the
participants can do it following TDD practices
2024-02-20 17:04:53 -05:00
Dustin J. Mitchell
95fce416ce
Expand Traits, add associated types (#1815)
This breaks the "Traits" slide into three smaller sub-slides. It also
addresses part of #1511 by explicitly addressing associated types.

---------

Co-authored-by: Martin Geisler <martin@geisler.net>
2024-02-20 11:41:53 -05:00
Jean Carlo Vicelli
9d63f23f1d
Change hardcoded vector update to a for loop (#1833)
iterating over the vector instead of hardcoding each item

---------

Co-authored-by: Martin Geisler <mgeisler@google.com>
2024-02-20 17:29:49 +01:00
titong0
8344cbc273
Add missing editable attribute to exercise (#1827)
I was reading the docs and I stumbled upon this.

I'm unsure about when exercises should be solved directly on the site
and when they should be copied and pasted into a playground. But since
the previous chapter's exercise is solvable in the site [(fibonacci
sequence)](0cb7f496b5/src/types-and-values/exercise.md (L15)),

I figured this one might be missing the attribute. Anyway amazing work
on the docs!
2024-02-20 16:12:55 +00:00
Gergely Risko
d5879d87b2
Reformulate speaker notes regarding Box (#1819)
The first change is to reformulate the English in a way, that
emphasizes, that this is not a decision of the compiler, but the
impossibility of computing an infinite value (e.g. changed the language
from "not compute" to "would not be able to compute").

The second change is to fix the error message, of course the error
message from the compiler is "recursive withOUT indirection", as
"recursive with indirection" is actually what we want.
2024-02-20 09:16:25 -05:00
Henri F
85d2987369
Update translations.md with new Korean contributor (#1823)
Co-authored-by: Martin Geisler <mgeisler@google.com>
2024-02-20 10:50:42 +00:00
Marja Hölttä
f1e4f300ec
Make the "break with label" example more illustrative (#1830)
In the old version, using "break 'outer;" and using "break;" (without
the label) produce the same output.

This version fixes that to make the example more illustrative.

---------

Co-authored-by: Martin Geisler <martin@geisler.net>
2024-02-20 10:06:29 +00:00
mobyw
6b805230c7
Add heading attribute to glossary.md (#1829)
Add heading attributes[1] to avoid ID changes in translation.

[1]: https://rust-lang.github.io/mdBook/format/markdown.html#heading-attributes

Related: #1825

---------

Co-authored-by: Martin Geisler <martin@geisler.net>
2024-02-20 10:00:59 +00:00
mobyw
f600b9629b
Fix style in glossary.md (#1825)
`id` of `h1` title in the translated version will be changed to the
translated text.
Fixed `id` configured here will not take effect in the translated
version.

Correct style: https://google.github.io/comprehensive-rust/glossary.html
Wrong style (zh-CN): https://google.github.io/comprehensive-rust/zh-CN/glossary.html
2024-02-19 17:17:41 +01:00
Manichand Kondapaka
fccdc0d69a
Added blocks and scopes section (#1822) 2024-02-16 13:12:51 -05:00
Gergely Risko
adaa04f961
Change String representation to actual (#1817)
Tested with rust 2015, 2018, 2021 and 2024, on amd64 musl, amd64 glibc
and aarch64 musl, all of them represent Strings with (ptr, capacity,
len).

This is an internal implementation detail, that shouldn't be exposed
anyway, so it's no big deal, but in the speaker notes, we provide a
debugging tool for demonstration purposes, so at least that should have
a correct output.
2024-02-15 17:24:19 -05:00
Manichand Kondapaka
f391e863ab
Added break-continue section. (#1793)
This is a contribution of a break-continue section for Comprehensive
Rust.


![image](https://github.com/google/comprehensive-rust/assets/65899331/e68bf439-bcbd-43c9-88bd-f66470a5956f)

![image](https://github.com/google/comprehensive-rust/assets/65899331/1644a460-8373-4878-b6b9-0ce498e8c95d)

---------

Co-authored-by: Dustin J. Mitchell <dustin@v.igoro.us>
2024-02-15 22:19:06 +00:00
Gergely Risko
aaef818b23
Make content of variable "name" an actual name (#1816)
In the example, somebody who is trying to understand this code has to
follow a lot of moving pieces: prefix, name, make_greeter, and then also
learn the new move concept at the same time.

It'd be better if the content were to actually match the name of the
variables. "Hi" is a good prefix, but "there" is not a name, so let's go
with an actual name.
2024-02-14 08:57:56 -05:00
Gergely Risko
eb8a5418bd
Use existing function as an example for automatic dereferncing (#1799) 2024-02-12 14:47:44 +00:00
IP1llar
2e2d47c709
Update try.md - syntax error (#1807)
Add second `:`
2024-02-12 09:39:40 -05:00
IP1llar
2f7dc8f93d
Fix typo in googletest.md (#1804)
The word `strings` is repeated unnecessarily
2024-02-12 09:37:12 -05:00
dependabot[bot]
76362763c3
cargo: bump the patch group with 4 updates (#1810)
Bumps the patch group with 4 updates:
[mdbook](https://github.com/rust-lang/mdBook),
[thiserror](https://github.com/dtolnay/thiserror),
[cxx](https://github.com/dtolnay/cxx) and
[cxx-build](https://github.com/dtolnay/cxx).

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-12 10:40:19 +00:00
dependabot[bot]
8b31cd978e
cargo: bump the minor group with 2 updates (#1809)
Bumps the minor group with 2 updates:
[clap](https://github.com/clap-rs/clap) 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-02-12 10:09:59 +00:00
dependabot[bot]
bd7f15dbaa
cargo: bump the patch group in /src/exercises/bare-metal/rtc with 1 update (#1808)
Bumps the patch group in /src/exercises/bare-metal/rtc with 1 update:
[chrono](https://github.com/chronotope/chrono).

Updates `chrono` from 0.4.33 to 0.4.34

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-12 10:09:20 +00:00
Nicole L
f5f2c6b925
Binder/AIDL content updates (#1618) 2024-02-09 15:11:10 -08:00
IP1llar
d15314527b
Update lifetime-elision.md (#1795)
In the details section, it is suggested to adjust the signature of the
nearest function to "lie" about the lifetimes returned to:

fn nearest<'a, 'q'>(points: &'a [Point], query: &'q Point) -> Option<&'q
Point> {

to demonstrate the compiler checks lifetimes for validity. However, the
syntax for 'q is incorrect and it should instead be

fn nearest<'a, 'q>(points: &'a [Point], query: &'q Point) -> Option<&'q
Point> {
2024-02-08 19:48:21 +00:00
Manichand Kondapaka
345cf646e4
Added loops section (#1789)
This is a contribution of a loops section for Comprehensive Rust.
2024-02-07 19:33:49 +00:00
Dustin J. Mitchell
9f67c9b0e7
Adjust morning-session timings downward (#1786)
Based on feedback from @marshallpierce that mornings took about 2.5
hours, this adjusts a bunch of the morning times downward to try to
match that. In other words, this is trying to make the times in the
course more accurate, rather than reducing the amount of time available
for these slides.

This also updates the `course-schedule` tool to be able to show
per-segment timings.
2024-02-06 15:48:56 -05:00
dependabot[bot]
e921d4bb1e
cargo: bump the minor group with 2 updates (#1783)
Bumps the minor group with 2 updates:
[pulldown-cmark](https://github.com/raphlinus/pulldown-cmark) and
[tokio](https://github.com/tokio-rs/tokio).

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-02-05 11:25:39 +00:00
dependabot[bot]
0e505be897
cargo: bump the patch group with 3 updates (#1784)
Bumps the patch group with 3 updates:
[serde_json](https://github.com/serde-rs/json),
[serde_yaml](https://github.com/dtolnay/serde-yaml) 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>
2024-02-05 10:30:46 +00:00
Manichand Kondapaka
faea6894e7
Added an Alternative way for printing struct and declaring a string. (#1773)
Knowing to_string method is good for learner to use at some situation. 
Knowing print complete struct object can be useful while debug.

---------

Co-authored-by: Dustin J. Mitchell <djmitche@google.com>
2024-02-02 20:48:03 +00:00
Pavel Roskin
fbc6be4e1c
Actually protect against deadlock in Dining Philosophers async exercise (#1772)
Swapping forks for one philosopher feels like cheating. It's like one of
the philosophers is facing away from the table. Or perhaps it's the only
right-handed philosopher at the table.

More importantly, there is no effective mechanism to prevent deadlocks.
Add that mechanism, it's useful for learning Rust.

The new code demonstrates let-else, drop and returning values from a
loop. `std::mem::swap` remains in the thread version of the Dining
Philosophers exercise for now.

This also fixes compilation. `left_fork` and `right_fork` had to be
`mut` in `main()` for the workaround to compile.
2024-01-30 20:00:19 -05:00
Yannis Guyon
a1d88c77e8
Replace "less" by "fewer" in exercise.md (#1769) 2024-01-30 15:53:42 +00:00
dependabot[bot]
4b7a874263
cargo: bump the patch group in /src/exercises/bare-metal/rtc with 1 update (#1768)
Bumps the patch group in /src/exercises/bare-metal/rtc with 1 update:
[chrono](https://github.com/chronotope/chrono).

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-29 10:29:40 +00:00
dependabot[bot]
85b2f76ea0
cargo: bump the patch group with 4 updates (#1767)
Bumps the patch group with 4 updates:
[serde](https://github.com/serde-rs/serde),
[serde_json](https://github.com/serde-rs/json),
[pulldown-cmark](https://github.com/raphlinus/pulldown-cmark) and
[buddy_system_allocator](https://github.com/rcore-os/buddy_system_allocator).

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-29 10:29:15 +00:00
dependabot[bot]
f3ff5b4111
cargo: bump the patch group in /src/bare-metal/alloc-example with 1 update (#1765)
Bumps the patch group in /src/bare-metal/alloc-example with 1 update:
[buddy_system_allocator](https://github.com/rcore-os/buddy_system_allocator).

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-29 10:28:41 +00:00
Dustin J. Mitchell
20f45521e5
Move Trait Objects to the Smart Pointers segment (#1756)
Fixes #1516.
2024-01-25 09:47:50 -05:00
Ivan De Marino
dc76b73bc4
Adding the Italian translation to the list of incomplete ones (#1747)
Long overdue.

It felt a bit "odd" self-assigning merit, especially because I think I
haven't nearly contributed enough translations. So I looked at the
[history of `it.po` file](https://github.com/google/comprehensive-rust/commits/main/po/it.po)
and identified also @henrythebuilder as the other "owner" of the Italian
translation (definitely, based on number of lines contributed).

@henrythebuilder please confirm you are comfortable with this.
2024-01-24 16:10:53 +00:00
Martin Geisler
1f6c0ea8a6
Remove double "finally" in java.md (#1732) 2024-01-22 11:15:06 -08:00
dependabot[bot]
00ece67120
cargo: bump embedded-hal from 0.2.7 to 1.0.0 in /src/bare-metal/microcontrollers/examples (#1721)
Bumps [embedded-hal](https://github.com/rust-embedded/embedded-hal) from
0.2.7 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-01-22 11:02:43 -08:00
dependabot[bot]
bc12c3820c
cargo: bump embedded-hal from 0.2.7 to 1.0.0 in /src/exercises/bare-metal/compass (#1720)
Bumps [embedded-hal](https://github.com/rust-embedded/embedded-hal) from
0.2.7 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-01-22 11:01:45 -08:00
Yuri Astrakhan
1dfc9f2e33
Clarify usage for thiserror-and-anyhow (#1724)
IMO it is better to explain to users the common usage / applicability
domain for anyhow and thiserror crates

---------

Co-authored-by: Dustin J. Mitchell <djmitche@google.com>
2024-01-18 15:28:00 -05:00
Dustin J. Mitchell
9d9b4170e4
Replace GUI exercise with Logger (#1682)
This should be a bit simpler, and notably
* does not require trait objects, which per #1516 should be moved later
in the course
 * does not require a lot of futzing with string formatting

But all that hard work developing the GUI exercise is not for naught: it
remains in the "Modules" segment, where students will get a chance to
read some Rust code and reorganize it a little bit.

Fixes #1617.

R=mgeisler as the original author of the GUI exercise.
2024-01-18 19:15:19 +00:00
dependabot[bot]
b4164e44a3
cargo: bump the minor group in /src/exercises/bare-metal/compass with 1 update (#1718)
Bumps the minor group in /src/exercises/bare-metal/compass with 1
update: [lsm303agr](https://github.com/eldruin/lsm303agr-rs).

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-18 12:08:15 +00:00