1
0
mirror of https://github.com/google/comprehensive-rust.git synced 2024-12-30 13:12:25 +02:00
Commit Graph

1676 Commits

Author SHA1 Message Date
Grzegorz Milka
c0dfd54f2c
fix: change "widley" to "widely" (#1599)
Co-authored-by: Dustin J. Mitchell <djmitche@google.com>
2023-12-19 14:41:51 +00:00
Andriy Redko
75145070de
uk: Regenerate translation for Comprehensive Rust v2 (#1598)
uk: Regenerate translation for Comprehensive Rust v2

Signed-off-by: Andriy Redko <drreta@gmail.com>
2023-12-19 13:19:22 +00:00
Martin Huschenbett
a35841992e
Simplify some code in the parsing exercise (#1594)
`let Some(x) = E else { return None; }` is equivalent to
`let Some(x) = E?`. That latter is shorter and more idiomatic, so let's
use that.

A pattern of the form `c @ P1 | c @ P1` has the disadvantage that the
name `c` is repeated. Let's replace it with `c @ (P1 | P2)`.

An `x: Option<Result<T, E>>` can be handled more succinctly with
`x.ok_or(...)??`.
2023-12-18 10:03:10 -05:00
Amin Sharifi
9a6a16e4ee
fa: Translate Part 6.x, 7, .., 15.x, 16.1 , .. , 16.5 (#1453)
Part of #671
- Translate Part  `6.x`, `7`, `..`, `15.x`, `16.1` , `..` , `16.5`
2023-12-17 14:14:53 +03:30
Chayim Refael Friedman
61f3e5fb51
Add explanation about when you should use each of the Fn* traits (#1579)
Beginners are confused by this often.

---------

Co-authored-by: Dustin J. Mitchell <dustin@v.igoro.us>
2023-12-15 15:22:59 +00:00
Martin Huschenbett
97a47cab78
Parse into data structures in protobuf example (#1591)
This is a suggestion for how we could make the protobuf exercise at the
end of day 3 better.

Generally speaking, the idea is to parse the protbuf bytes into data
types instead of only printing the parsing outcome to the console. To
make this a little more realistic, we also introduce a trait
`ProtoMessage` for message types.

I think this is more instructive than the current example. In
particular, we get to mess around with lifetimes. This might be a little
more complicated but can be a great opportunity for the students to tie
together different things they've learnt in the course so far.

What do you all think?
2023-12-15 10:00:50 -05:00
Dustin J. Mitchell
085cbf2c1e
Update expression-evaluation exercise: more patterns, more enums (#1582)
This modifies the exercise to lean more into interesting `match`
statements. It also uses the standard `Result` type, based on feedback
that students could understand it sufficiently at this point in the
course.

Addresses #1565.
2023-12-14 15:22:28 +00:00
Martin Huschenbett
302a03bbe3
Remove unnecessary syntax in protobuf example (#1592)
`Ok(x?)` has the same outcome as `x` and save an unpacking/repacking
cycle.

`x as usize` has no effect when `x` already has type `usize`.

In `x < 4usize` the `usize` is unnecessary when `x` already has type
`usize`.
2023-12-14 16:02:40 +01:00
rickyclarkson
c7a86ca584
Fixing a typo (#1588) 2023-12-13 18:26:34 -05:00
Dustin J. Mitchell
afea94b1ed
Use a type alias in binary tree exercise (#1589)
As suggested by @marshallpierce and @hurryabit
2023-12-13 19:53:35 +00:00
Martin Huschenbett
c6973018c6
Fix typo in lifetime annotations section (#1590)
The code example was meant to be `editable` but was marked as
`eitable`.
2023-12-13 13:41:32 -05:00
Martin Huschenbett
ee826ef742
Use cmp + match in binary tree example (#1587)
Currently, the implementation uses if-then-else chains and `<` and `>`.
This is not the most idiomatic Rust. Instead, we can use `cmp` and
`match` to make the code easier to read.

---------

Co-authored-by: Dustin J. Mitchell <djmitche@google.com>
2023-12-13 13:39:23 -05:00
Martin Huschenbett
f37aeac3ca
Remove unnecessary ref mut in binary tree exercise (#1586)
There's no need for the `ref mut` in the pattern. So, let's just drop
it for the sake of simplicity.
2023-12-13 12:34:18 -05:00
Martin Huschenbett
ce081b12f9
Rename test module into tests in smart pointer exercise (#1585)
If I'm not mistaken, the naming convention for modules containing only
tests is to call them `tests` (rather than `test`).
2023-12-13 12:33:31 -05:00
Dustin J. Mitchell
9563f055e2
Minor updates based on instruction (#1583)
This contains some minor updates from #1565.

---------

Co-authored-by: Marshall Pierce <575695+marshallpierce@users.noreply.github.com>
2023-12-13 12:51:34 +00:00
Martin Geisler
35442ad424
Add back apt update (#1584)
This reverts #1490 due to errors seen in
https://github.com/google/comprehensive-rust/actions/runs/7188648811/job/19590765217.
The error says

Get:23 http://azure.archive.ubuntu.com/ubuntu jammy/main amd64
libc6-dev-arm64-cross all 2.35-0ubuntu1cross3 [1546 kB]
    Fetched 41.7 MB in 1s (46.1 MB/s)
E: Failed to fetch
mirror+file:/etc/apt/apt-mirrors.txt/pool/main/b/binutils/binutils-aarch64-linux-gnu_2.38-4ubuntu2.3_amd64.deb
404 Not Found [IP: 52.147.219.192 80]
E: Unable to fetch some archives, maybe run apt-get update or try with
--fix-missing?
    Error: Process completed with exit code 100.

This seems less transient than the error which made us remove the `apt
update` calls in #1490.
2023-12-13 11:33:54 +01:00
Chayim Refael Friedman
86289b4814
Remove an incorrect note (#1580)
People are often confused by this: the fact that we can remove the `*`
in the `println!()` is not because the compiler auto-derefs here (it
does not), but because `Display` is implemented for `&T where T:
Display` (a blanket implementation).
2023-12-12 11:29:50 -05:00
Chayim Refael Friedman
c342a74b3e
Having a Vec allows accessing mutating slice methods, too (#1578)
I don't know why "read-only" was added.
2023-12-12 10:02:10 -05:00
Hidenori Kobayashi
9c5865d8ca
ja: translate Ch. 54 (#1573)
Part of #652.
2023-12-12 21:33:08 +09:00
Marshall Pierce
e41ab44a38
More tiny fixes (#1577) 2023-12-11 16:13:54 -05:00
Dustin J. Mitchell
e765159be1
Clarify completion condition for elevator exercise (#1574)
Addresses the first part of #1565.
2023-12-11 19:12:40 +00:00
Lukasz Anforowicz
f04e277744
Chromium: Add redox_syscall to speaker notes for the third-party exercise. (#1571)
Speaker notes for Chromium's third-party crate exercise list the
transitive dependencies that will be downloaded during the exercise.
Before this commit the list was missing the `redox_syscall` crate.

Additionally, the commit sorts the crates to make it easier to compare
with the output of `git status` or `ls`.

---------

Co-authored-by: Martin Geisler <martin@geisler.net>
2023-12-11 07:21:53 -08:00
AdrienBaudemont
395d58d7ce
fr: running msgmerge on fr.po (update from the English main text). (#1435)
fr: running msgmerge on fr.po (update from the English main text).
2023-12-11 09:44:32 -05:00
Kanta Yamaoka (山岡幹太)
d62f2c4583
Add trait bounds to glossary (#1569)
Hi, this is a tiny MR to add glossary entry for "trait bound". Could you
someone review it? I'm open to suggeston, too. Thank you!
Context:
https://github.com/google/comprehensive-rust/pull/1436#discussion_r1394298992
2023-12-10 17:05:11 +01:00
Adrian Taylor
4a576fd436
Update depending-on-a-crate.md (#1570)
Fix typo
2023-12-08 07:07:13 -08:00
Lukasz Anforowicz
89b41555eb
Title-casing in section titles (#1557)
Fixes https://github.com/google/comprehensive-rust/issues/1552
2023-12-07 18:06:18 -08:00
Martin Geisler
1ec2e8db9e
Expand "Docs" plus light copy-editing (#1568)
I don't like shortening words, so I prefer "Documentation" over "Docs".
I find this less jargony and thus easier to read (and potentially also
easier to translate).
2023-12-07 20:04:36 +00:00
ternbusty
45a8ec4e78
ja: Normalize by running through mdbook-i18n-normalize 0.3.0 (#1482)
Hello, JA translation team!
(https://github.com/google/comprehensive-rust/issues/652)

As part of #1460, I normalized ja.po using mdbook-i18n-normalize 0.3.0.

Steps taken: `mdbook-i18n-normalize`.

I'm open to any feedback or suggestions. Thank you in advance!
2023-12-07 17:23:23 +01:00
Martin Geisler
c080de8253
Simplify enums a little (#1566)
This takes out the huge example with lots of macro magic. I don't think
we need it for an introductory course.

I also cleaned up the formatting a little and made sure to distinguish
between types and values.

---------

Co-authored-by: Dustin J. Mitchell <djmitche@google.com>
2023-12-07 16:15:57 +00:00
Martin Geisler
fca968651e
Fix mdbook redirection table (#1567)
There must have been a merge conflict at some point which resulted in a
malformed table. The result was that most redirects were blindly ignored
by `mdbook`.

I noticed it for
https://google.github.io/comprehensive-rust/enums.html which stopped
working because of this.

I took out the memory management redirect since we already have a file
where redirect would be (`mdbook` helpfully emits an error in this
case).
2023-12-07 15:51:42 +00:00
Adrian Taylor
cc8405d04f
Chromium exercise solutions (#1564)
The main thing in this CL is a link to exercise solutions but there are
a couple of other very minor tweaks.
2023-12-06 19:26:41 +00:00
Martin Geisler
97b18e8538
mdbook-course: Make printing summary optional (#1562)
There is now a new “verbose” setting which can be used to print the
summary when desired.
2023-12-06 12:57:18 -05:00
Martin Geisler
91cb5b2048
Fix outdated references to “three days” (#1563)
Rust Fundamentals is now a four-day course.
2023-12-06 12:55:34 -05:00
Marshall Pierce
9efad3212f
More minor fixes (#1561)
- Fix compile errors and warnings in error handling example
- Tweak iteration example so that it correctly visits the first grid
coordinate
2023-12-06 12:53:06 -05:00
Hidenori Kobayashi
857511a763
ja: translate Ch. 43 and 44 (#1442) (#1497)
Part of #652.
2023-12-07 02:04:50 +09:00
Adrian Taylor
59a0faba83
Update policy.md (#1560)
Fix formatting of "C++"
2023-12-06 09:55:42 -05:00
Martin Huschenbett
f08c537007
Use type annotation instead of turbo fish in method chapter (#1558)
If we use a type annotation, we get around explaining the turbo fish,
which isn't trivial without having introduced generics. Type
annotations on the other hand are known already.
2023-12-06 14:16:01 +00:00
Martin Huschenbett
70efef4f38
Use Self to create struct in method chapter (#1559)
If I'm not mistaken, it's idomatic to use `Self` in a struct constructor
rather than the name of the struct.
2023-12-06 14:08:56 +00:00
Marshall Pierce
6c5061bb90
Various small fixes (#1556)
Plus one more substantial comment on casting.
2023-12-05 18:06:42 -05:00
Lukasz Anforowicz
8f9902cc3e
Chromium: new subsection about gtest tests (#1551) 2023-12-05 10:39:02 +00:00
Xavier Carol
7d10518b24
Update interior-mutability.md (#1554)
fix typo copmile-time
2023-12-04 18:36:35 +00:00
Lukasz Anforowicz
24b132b67a
Chromium: expanding CXX error handling section. (#1539) 2023-12-04 08:03:17 -08:00
Dustin J. Mitchell
1fa6b7438b
Do not include timing info in sub-chapters of slides (#1538)
Timing information is for a slide as a whole, so we use a sentence like
"This slide and its sub-slides should take about 15 minutes" in the
first chapter in the slide. Subsequent chapters in the same slide do not
need timing information.

Fixes #1552.
2023-12-04 14:56:44 +00:00
Martin Geisler
11a8334aa4
Improve action step name (#1507)
The step is not really testing the content of the translation, it’s
merely testing that the PO file is correctly formatted.
2023-12-02 06:26:38 -08:00
Martin Geisler
42019dd5bf
da: Refresh all strings (#1535)
This incorporates the new Chromium material from #1479 as well as the
reshuffle and rewrite from #1073.

This is a clean update without any additional changes. I’ll un-fuzzy the
string later.
2023-12-02 06:25:36 -08:00
Martin Geisler
a277e7b922
Fix mock example and move it to a file for testing (#1548)
I swear I tested this in an actual Rust file, but I somehow messed up
when copy-pasting it into the example. The code is now in the test file
so it will be correct.

Why is the indentation wrong? Because of

  https://github.com/rust-lang/mdBook/issues/1564

The indentation is not kept by the included content, which breaks the
Markdown.
2023-12-01 23:19:10 +01:00
Dustin J. Mitchell
fbd79e36e7
Remove incorrect comment about moving arrays (#1547)
Fixes #1546.
2023-12-01 13:37:37 -05:00
Lukasz Anforowicz
584c957d69
Fix spelling of CXX and Cargo (mostly in the Chromium part). (#1549) 2023-12-01 10:21:47 -08:00
Martin Geisler
53baee82e3
Re-apply formatting to SUMMARY.md (#1429)
With the latest version of mdbook-i18n-helpers, we now have support for
formatting in the `SUMMARY.md` file. This allows us to revert the
changes made in #130 when we first introduced the translation support.

This also aligns a few headings to match the heading in the outline.
While this isn’t strictly necessary, it removes a bit of work for the
translators.
2023-12-01 13:20:28 -05:00
Lukasz Anforowicz
9d21d5648d
Use std::string_view (not just const char*) as an analogy of &str. (#1518) 2023-12-01 10:17:27 -05:00