Commit Graph

371 Commits

Author SHA1 Message Date
mokou a3c4c1ccb4 fix: re-add missing done comments 2022-07-15 13:24:11 +02:00
mokou b609f0431c feat: remove advanced_errs 2022-07-15 12:51:12 +02:00
mokou 4bebdb5f02 feat(as_ref_mut): add AsMut section 2022-07-15 12:50:01 +02:00
mokou 81d25aecff feat(try_from_into): add hint comments 2022-07-15 12:49:49 +02:00
mokou 74f44f55e3 feat(conversions): add hint comments 2022-07-15 12:34:10 +02:00
mokou 8cfedb1673 feat(clippy): add clippy3 2022-07-15 12:28:47 +02:00
mokou 7fc393bed4 chore: remove quiz4 2022-07-15 12:13:40 +02:00
mokou d3a335bc64 feat(macros): add hint comments 2022-07-15 12:05:26 +02:00
mokou f99eafc56f fix(threads): add hint comments 2022-07-15 11:59:53 +02:00
jaystile b4f52cb937 feat: Adding threads1.rs with a focus on JoinHandles and waiting for
spawned threads to finish. Moved the original threads1.rs to threads2.rs
with the focus on the Mutex and modifying shared data. #892
2022-07-15 11:58:26 +02:00
mokou 20024d40c5 feat(iterators): update hint comments 2022-07-14 18:29:09 +02:00
Paulo Gabriel Justino Bezerra 251d0dda34 feat(iterators4): add factorial of zero test 2022-07-14 18:27:34 +02:00
Ryosuke YASUOKA 3c63ef0668 fix(iterators3): insert todo!() into divide() to compile without error 2022-07-14 18:19:35 +02:00
mokou cf9629cb0e feat: move box/arc behind iterators 2022-07-14 18:17:23 +02:00
mokou 016d718a28 feat(tests): add hint comments 2022-07-14 18:15:47 +02:00
mokou 98b8d3f17d feat(traits): add hint comments 2022-07-14 18:14:41 +02:00
mokou 5979d408a9 feat: move generics3 to be quiz3 2022-07-14 18:11:18 +02:00
mokou d61f79595a feat(generics): add hint comments 2022-07-14 18:11:05 +02:00
mokou c34e2adcbb feat(errors): Improve comments and hints 2022-07-14 18:02:33 +02:00
Noah Cairns 5e1ca4b995 fix(errors5): improve exercise instructions 2022-07-14 17:59:29 +02:00
Steven nguyen 582320aded chore(errors1): use `is_empty()` instead of `len() > 0`
more idiomatic according to clippy
2022-07-14 17:55:07 +02:00
mokou b71feed824 feat(options): add hint comments 2022-07-14 17:53:42 +02:00
mokou 06e4fd3765 feat(options1): rewrite to remove array stuff 2022-07-14 17:53:27 +02:00
mokou b644558c19 fix: rename option to options 2022-07-14 17:34:50 +02:00
mokou 472d7944f9 fix(quiz2): add hint comment 2022-07-14 17:30:43 +02:00
mokou c64b340622 feat: rework quiz2 2022-07-14 13:24:15 +02:00
mokou f443f4e7b3 feat: move quiz2 to be strings4 2022-07-14 13:01:40 +02:00
mokou ab8572e15b fix(hashmaps): adjust hint comments 2022-07-14 12:58:28 +02:00
Sateesh Basavaraju 1e54bc61e8 feat: Add hashmap3 exercise. 2022-07-14 12:57:47 +02:00
mokou fe54d0f85b fix(modules): adjust hint comments 2022-07-14 12:35:49 +02:00
mokou c1ed6b10fe feat(strings): add strings3 2022-07-14 12:31:28 +02:00
mokou f5e4c16eed feat(strings): move before modules 2022-07-14 12:18:21 +02:00
mokou c6bc97adc1 feat(enums3): add hint comment, remove enums1 hint 2022-07-14 12:11:38 +02:00
mokou 886d599c96 fix(structs): add hint comments 2022-07-14 12:04:54 +02:00
camperdue42 4531c21bf1 fix(structs3): Add panic! statement into structs3
closes #685
2022-07-14 12:04:30 +02:00
mokou 4dffa0d10d fix(structs1): rename to unit-like struct 2022-07-14 12:00:46 +02:00
mokou 19bec50399 feat(structs1): convert structs to use i32 types 2022-07-14 11:59:29 +02:00
mokou 2e62505143 feat(move_semantics): finish updating comments 2022-07-12 15:43:26 +02:00
mokou bb0cf92b8b feat(move_semantics): clarify some hints 2022-07-12 15:25:31 +02:00
mokou 7452d0d603 fix(primitive_types): clean up 2022-07-12 15:22:01 +02:00
mokou 3c4c9c54c9 feat: remove collections to hashmaps 2022-07-12 15:18:05 +02:00
mokou 2f7fd51304 feat: move vec exercises into their own folder 2022-07-12 15:16:25 +02:00
mokou 8e1f617d34 feat(vec): update vec exercises 2022-07-12 15:05:47 +02:00
mokou 7af12ba9aa feat(primitive_types): fixups 2022-07-12 14:54:12 +02:00
Adam Sherwood 5812f1f27b fix(if2): Rename if2 exercise function to foo_if_fizz.
The reasoning here is pretty straightforward: you don't say "Hungry, if
eat." That doesn't make sense. We want to get "foo" back if given
"fizz", so it seems this makes far more sense as "Eat, if hungry," or in
this case, return `foo_if_fizz` is given.
2022-07-12 11:13:04 +02:00
mokou 4868d18ea3 feat(if): replace hints 2022-07-12 11:10:08 +02:00
mokou 742fb08e01 feat(functions): more small fixes 2022-07-12 11:08:29 +02:00
mokou 093a525450 fix(functions): clarify README wording 2022-07-11 14:00:12 +02:00
gavin 60410cfd2e fix(variables5): Add nudge for shadowing variable 2022-07-11 13:48:49 +02:00
mokou 81edc4234f fix(variables): reorder and redo hint texts 2022-07-11 13:43:41 +02:00
mokou c3c21ad91f fix(intro): clarify hint usage 2022-07-11 13:35:16 +02:00
mokou 0ded8a90c0 feat(intro1): add more hints 2022-07-11 13:19:19 +02:00
mokou ed0f278a8f chore: remove mod.rs files and exercises feature 2022-07-11 12:53:49 +02:00
0pling be3944072c docs: Add missing exercise to book chapter mapping 2022-06-26 10:27:18 +08:00
diannasoreil 1237aa574c
Merge pull request #969 from Fointard/fointard_using_as
refactor(using_as): improve readability by using sum() instead of fold()
2022-04-20 09:15:22 +02:00
fointard 452ab26aa7
refactor(using_as): improve readability by using sum() instead of fold() 2022-04-19 17:37:00 +02:00
fointard 92a5d0037f
refactor(arc1): improve readability by using functional style 2022-04-19 17:11:27 +02:00
diannasoreil 51817820f2
Merge pull request #961 from J-S-Kim/main
fix(errors6.rs): remove one answer code
2022-04-14 10:44:22 +02:00
mokou 76a36dd385 chore: update errors1 comments and hint 2022-04-14 10:32:43 +02:00
stevenfukase 60bb7cc393
Fix test (#958)
fix(errors1): don't modify tests
2022-04-14 10:25:44 +02:00
J-S-Kim 43d0623086
fix(errors6.rs): remove one answer code
Although marked as 'TODO', three tests pass without any implementation because the correct answer code already exists.
2022-04-09 01:23:58 +09:00
ragreenburg 89650f808a
fix(move_semantics2): Add comment 2022-04-06 09:29:27 +02:00
Pascal Havé 4dfd85ff05 fix(move_semantics) : add move_semantics6.rs to its mod 2022-04-03 23:51:46 +02:00
Soroush Zare 0bd7a0631a
fix(iterators1): reorder TODO steps
Update the TODO steps in the iterators1 exercise.
2022-03-30 13:27:52 +02:00
Lucas Aries 3f0e1303e0
feat: Add move_semantics6.rs exercise (#908) 2022-03-29 15:02:35 +02:00
x-hgg-x 179a75a68d
fix: Include exercises folder in the project structure behind a feature (#917)
closes #859
closes #913
closes #942
2022-03-29 11:44:06 +02:00
diannasoreil 4cde788d33
Merge pull request #733 from apogeeoak/intro
feat(intro): Proposal to add successfully compiling exercise as the first exercise.
2022-02-04 15:26:15 +01:00
diannasoreil 9838892cf3
Merge pull request #728 from Zerotask/improve-option-further-information
docs(option): improve further information if let and while let
2022-02-04 15:22:23 +01:00
Yang Wen 4f7ff5d9c7
fix(structs3): Add a hint for panic (#608)
as a totally newbie to Rust, I don't know panic statement from https://doc.rust-lang.org/book/ and rustlings in the beginning. After a hard searching of [should_panic], then I figure out panic statement. 

So it's helpful to tell the learner that write a panic statement here.
2022-02-04 15:12:02 +01:00
zydxhs cbcde34540
fix(errors1): Add a comment to make the purpose more clear (#486)
Signed-off-by: zydxhs <johnsmithcry@163.com>
2022-02-04 15:00:24 +01:00
ZX 1622e8c198
fix(quiz1): update to say quiz covers "If" 2021-12-29 14:55:37 +08:00
Franklin van Nes f2650de369 fix(clippy1): Updated code to test correctness clippy lint with approx_constant lint rule
closes #888
2021-12-15 11:46:27 -05:00
Michael Walsh d1ee2daf14 fix(structs3.rs): assigned value to cents_per_gram in test
Intended to simplify the lesson by removing the need to figure out what the value is meant to be based on the tests.

Previous commits (9ca08b8f2b and 114b54cbdb (diff-ce1c232ff0ddaff909351bb84cb5bff423b5b9e04f21fd4db7ffe443e598e174)) removed the mathematical complexity, and I feel this addition is a needed change to further streamline the exercise.
2021-10-30 16:55:58 -06:00
xuesong 1663a16ead
fix(traits1): rename test functions to snake case (#854)
Co-authored-by: zhangshaozhi <zhangshaozhi@ZhangshaozhideMacBook-Pro.local>
2021-10-18 13:57:12 +02:00
Fredrik Enestad 46c28d5cef
fix(move_semantics5): correct typo (#857) 2021-09-30 10:18:36 +02:00
Zhenghao Lu bf33829da2
fix(structs3): remove redundant 'return' (#852) 2021-09-27 10:03:28 +02:00
diannasoriel c2ed98deb3
Merge pull request #781 from tlyu/advanced-errs
feature: advanced errors
2021-09-25 11:18:55 +02:00
Taylor Yu abd6b70c72 feat: add advanced_errs2
New exercise to demonstrate traits that make it easier for other code
to consume our custom error types.
2021-09-25 11:18:23 +02:00
Taylor Yu 882d535ba8 feat: add advanced_errs1
New section and exercise to demonstrate the `From` trait for errors
and its usefulness with the `?` operator.
2021-09-25 11:18:21 +02:00
frogtd d75759e829
fix(move_semantics5): change &mut *y to &mut x (#814)
Instead of having to explain why 
```rs
let mut x = 100; 
let y = &mut x;
let mut z_owned = *y;
let z = &mut z_owned;
*y += 100;
*z += 1000;
```
and 
```rs
let mut x = 100; 
let y = &mut x;
let z = &mut *y;
*y += 100;
*z += 1000;
```
are different, you still get the point across about having only one mutable reference.
As it stands, this exercise does too much (dereferencing and having only one mutable reference), and by doing so confuses people.

Example of someone being confused by this:
<https://discord.com/channels/273534239310479360/273541522815713281/872689531428692040>
2021-09-25 10:52:18 +02:00
Weilet 0a11bad714
feat(quiz1): add default function name in comment (#838) 2021-09-21 10:43:44 +02:00
granddaifuku 1c3beb0a59
fix(modules2): fix typo (#835) 2021-09-06 16:32:39 +02:00
anuk909 dfd2fab4f3
feat(modules): update exercises, add modules3 (#822)
Co-authored-by: diannasoriel <mokou@fastmail.com>
2021-09-03 10:41:12 +02:00
diannasoriel 96fc301764
chore(quiz1): revert wording 2021-08-26 10:30:18 +02:00
Damian 03131a3d35
fix(quiz1): Fix inconsistent wording (#826)
The second test expects the function to return 80 when there is an order of 40 apples, but the current wording implies returning 40 will pass as well
2021-08-24 10:48:51 +02:00
ana df25684cb7 fix(move_semantics5): Clarify instructions 2021-07-29 12:37:15 +02:00
fmoko 8e313cffaa
Merge pull request #732 from apogeeoak/iterators5
chore(iterators5): Minor formatting improvements.
2021-07-09 12:24:42 +02:00
fmoko 6948905716
Merge pull request #737 from ghost/correct-small-typo
Correct small typo in exercises/conversions/from_str.rs
2021-07-08 11:07:21 +02:00
Rakshit Sinha d876649616
fix(quiz1): Updated question description (#794)
Co-authored-by: Rakshit Sinha <rakshit.sinha@oracle.com>
2021-07-07 22:18:33 +02:00
lauralindzey 8774e47dc3
docs: Update collections README with HashMap link 2021-07-06 01:31:27 -07:00
Laura Lindzey e422ab1507 docs: Update exercise to chapter mapping for HashMap 2021-07-05 23:07:34 -07:00
Taylor Yu 2dc93cadda fix(from_str, try_from_into): custom error types
Remove the use of trait objects as errors from `from_str` and
`try_from_into`; they seem to have caused a lot of confusion in
practice. (Also, it's considered best practice to use custom error
types instead of boxed errors in library code.) Instead, use custom
error enums, and update hints accordingly. Hints also provide
some guidance about converting errors, which could be covered
more completely in a future advanced errors section.

Also move from_str to directly after the similar exercise `from_into`,
for the sake of familiarity when solving.
2021-06-24 21:33:41 -05:00
marisa a3ea37b76e
Merge pull request #771 from tlyu/iterators5-trait-tweak
fix(iterators5): derive Clone, Copy
2021-06-24 14:17:05 +02:00
marisa ec63cadadb
Merge pull request #772 from tlyu/errors-rework
feature: improve error_handling exercises
2021-06-24 14:12:34 +02:00
Taylor Yu b7ddd09fab address review feedback
Adjust error text and naming to conform with best practices.
Use `map_err()` instead of `or()`. Wrap lower-level errors instead of
ignoring their details.

Also, don't "cheat" by bypassing the `new()` function in tests.

Fix a dangling reference in the try_from_into hints.
2021-06-09 23:27:53 -05:00
ZC 48ffcbd2c4
fix(variables5): confine the answer further
let mut number = 3; can lead to a correct answer, so the comment helps to direct the users to the intended answer.
2021-06-07 18:22:55 +08:00
Taylor Yu 68d3ac567c feature: improve error_handling exercises
Add new exercises errors5 and errors6, to introduce boxed errors and
custom error enums more gently. Delete errorsn, because it tried to do
too much too soon.
2021-06-06 23:08:57 -05:00
Taylor Yu 50ab289da6 fix: rename result1 to errors4
Also put it in the ERROR HANDLING section where it probably belongs.
2021-06-06 23:08:54 -05:00
Taylor Yu 91fc9e3118 fix(iterators5): derive Clone, Copy
To allow more flexibility in solutions, derive `Clone` and `Copy`
for `Progress`.
2021-06-06 17:38:02 -05:00
Taylor Yu 1b85828548 fix: move_semantics5 hints
Improve the hints for move_semantics5, as well as the explanatory
comments in the code.

Previously, it was not clear what possible changes were allowed.
It seems that reordering the statements might be the intended solution.
The previous comment about not "adding newlines" doesn't make sense,
so treating it as "adding new lines" makes it more clear.
2021-05-22 22:09:58 -05:00