1
0
mirror of https://github.com/rust-lang/rustlings.git synced 2025-12-26 00:11:49 +02:00

Compare commits

...

2751 Commits

Author SHA1 Message Date
mo8it
c8d1d9c51f chore: Release 2024-08-29 17:20:17 +02:00
mo8it
ab2eb3442e Update changelog 2024-08-29 17:10:39 +02:00
mo8it
dbbeb7d4ed Fix displaying the list message in narrow mode 2024-08-29 17:06:37 +02:00
mo8it
bfa00ffbdc Update deps 2024-08-29 16:40:40 +02:00
mo8it
10eb1a3aee Fix header padding 2024-08-29 16:01:41 +02:00
mo8it
fd2bf9f6f6 Simplify next_pending_exercise_ind 2024-08-29 01:59:04 +02:00
mo8it
fc1f9f0124 Optimize reading and writing the state file 2024-08-29 01:56:45 +02:00
mo8it
789492d1a9 The number of exercises can't be zero, but still 2024-08-29 00:32:58 +02:00
mo8it
afc320bed4 Fix error about too many open files during the final check 2024-08-29 00:17:22 +02:00
mo8it
cba4a6f9c8 Only disable links in VS code in the list 2024-08-28 01:19:53 +02:00
mo8it
5556d42b46 Use sol_path 2024-08-28 01:10:19 +02:00
mo8it
7d2bc1c7a4 Use a Vec for the name col padding 2024-08-28 00:56:22 +02:00
mo8it
c209c874a9 Check the exercise name length 2024-08-28 00:34:24 +02:00
mo8it
dd52e9cd72 Separate the scroll state 2024-08-27 00:03:50 +02:00
mo8it
0f71a150ff Making code prettier :P 2024-08-26 22:03:09 +02:00
mo8it
74388d4bf4 Only trigger write when needed 2024-08-26 04:41:26 +02:00
mo8it
e811dd15b5 Fix list on terminals that don't disable line wrapping 2024-08-26 04:29:58 +02:00
mo8it
f22700a4ec Use the correct environment variable 2024-08-26 02:43:08 +02:00
mo8it
ee25a7d458 Disable terminal links in VS-Code 2024-08-26 02:41:22 +02:00
mo8it
594e212b8a Darker highlighting in the list 2024-08-26 00:53:42 +02:00
mo8it
5c355468c1 File link in the list? No problem :D 2024-08-26 00:49:56 +02:00
mo8it
d1571d18f9 Only reset color and underline after link 2024-08-26 00:48:12 +02:00
mo8it
cb86b44dea LOL, swapped colors 2024-08-26 00:40:30 +02:00
mo8it
833e6e0c92 Newline after resetting attributes 2024-08-26 00:24:39 +02:00
mo8it
159273e532 Take stdout as argument in watch mode 2024-08-26 00:09:04 +02:00
mo8it
631f2db1a3 Lower the maximum scroll padding 2024-08-25 23:54:18 +02:00
mo8it
a1f0eaab54 Add disallowed types and methods in Clippy 2024-08-25 23:54:04 +02:00
mo8it
b1898f6d8b Use queue instead of Stylize 2024-08-25 23:53:50 +02:00
mo8it
d29e9e7e07 Update deps 2024-08-25 20:42:13 +02:00
mo8it
360605e284 Merge branch 'rm-ratatui' 2024-08-25 20:31:08 +02:00
mo8it
64772544fa Final touches :D 2024-08-25 20:29:54 +02:00
mo8it
5f4875e2ba Almost done with list 2024-08-25 19:24:12 +02:00
mo8it
fd2a8c01cb Separate drawing rows 2024-08-24 19:18:13 +02:00
mo8it
b6129ad081 Use the full length for the wide footer 2024-08-24 17:45:38 +02:00
mo8it
28d0b0a21e Highlight selected row 2024-08-24 17:45:02 +02:00
mo8it
b779c43126 Almost done with list display 2024-08-24 17:17:56 +02:00
mo8it
4e12725616 Don't exit the list on "to current" if nothing is selected 2024-08-24 00:23:45 +02:00
mo8it
570bc9f32d Start list without Ratatui 2024-08-24 00:14:12 +02:00
mo8it
47976caa69 Import Ordering 2024-08-22 14:42:17 +02:00
mo8it
f1abd8577c Add missing Clippy allows to solutions 2024-08-22 14:41:25 +02:00
mo8it
423b50b068 Use match instead of comparison chain 2024-08-22 14:37:47 +02:00
mo8it
bedf0789f2 Always use strict Clippy when checking solutions 2024-08-22 14:25:14 +02:00
mo8it
a2d1cb3b22 Push newline after running an exercise instead on each rendering 2024-08-20 16:05:52 +02:00
mo8it
e7ba88f905 Highlight the solution file 2024-08-20 16:04:29 +02:00
mo8it
50f6e5232e Leak info_file and cmd_runner in dev check 2024-08-20 14:47:08 +02:00
mo8it
8854f0a5ed Use anyhow! 2024-08-20 14:32:47 +02:00
mo8it
13cc3acdfd Improve readability 2024-08-20 13:56:52 +02:00
mo8it
5b7368c46d Improve error message if no exercise exists 2024-08-20 13:54:20 +02:00
mo8it
27999f2d26 Check if exercise doesn't contain tests 2024-08-20 13:49:48 +02:00
mo8it
e74f2a4274 Check for #[test] with newline at the end 2024-08-20 13:39:14 +02:00
mo8it
d141a73493 threads3: Improve the test 2024-08-20 13:35:07 +02:00
mo8it
631f44331e Remove --show-output for tests and use --format pretty 2024-08-20 13:08:15 +02:00
mo8it
b01fddef8b Show progress of dev check 2024-08-19 23:52:22 +02:00
mo8it
78a8553f1c "Continue at" quits the list 2024-08-19 23:29:17 +02:00
mo8it
b70c1abd7c Update deps 2024-08-19 23:28:53 +02:00
mo8it
71f31d74bc Update deps 2024-08-17 16:57:58 +02:00
mo8it
72e557b3a9 Break help footer on narrow terminals 2024-08-17 16:54:44 +02:00
mo8it
3eaccbb61a Restore the terminal after an error in the list 2024-08-17 16:49:07 +02:00
mo8it
b678bd8ed2 Disable mouse in the list 2024-08-17 16:34:43 +02:00
mo8it
2baa140615 q only quits the list 2024-08-17 15:53:34 +02:00
mo8it
e760f07767 Make it clear that reset only resets one exercise 2024-08-17 15:53:24 +02:00
mo8it
ca5d5f0a49 Remove dot for copy-pasta 2024-08-17 15:45:02 +02:00
mo8it
69b4fd49fc Only take a u8 to avoid huge output 2024-08-17 14:59:00 +02:00
mo8it
36f315c344 Add "the" 2024-08-17 14:56:52 +02:00
mo8it
8016f5ca2d Remove unneeded comma 2024-08-17 14:55:58 +02:00
mo8it
8ef2ff1257 Remove "Hello and" 2024-08-17 14:54:13 +02:00
mo8it
6ce31defb6 Ignore stdout of git init 2024-08-17 14:40:09 +02:00
mo8it
0b3ad9141b Add exercise lints 2024-08-16 00:24:45 +02:00
mo8it
c903db5c53 Add project lints 2024-08-16 00:24:45 +02:00
Mo
8a038b946c Merge pull request #2084 from crd477/patch-1
fix typo
2024-08-16 00:12:58 +02:00
Chad Dougherty
ed9740b72c fix typo
Similarely -> Similarly in comment
2024-08-15 14:21:27 -04:00
mo8it
ce3dcc9856 Fix typo 2024-08-09 12:47:32 +02:00
mo8it
4472d50eba chore: Release 2024-08-09 11:52:31 +02:00
mo8it
a1d5702ba0 Ready for publish 2024-08-09 11:51:56 +02:00
mo8it
52a231ce2f Update Ratatui 2024-08-09 02:17:01 +02:00
mo8it
16af981772 Hide stderr of cargo locate-project 2024-08-09 01:27:31 +02:00
mo8it
fc141b8dfc Put Cargo.toml in `` 2024-08-09 01:16:45 +02:00
mo8it
82ebd29ff6 Add a special confirmation for initialization in a workspace 2024-08-09 01:14:08 +02:00
mo8it
f5737b5a49 Fix typos 2024-08-09 01:08:52 +02:00
mo8it
55e68d2c63 Update deps 2024-08-09 01:06:27 +02:00
mo8it
479f45da9b test_dir is a str anyway 2024-08-09 01:05:44 +02:00
mo8it
140c4e4812 Improve initialization in a Cargo workspace 2024-08-09 00:49:30 +02:00
mo8it
337460d299 Check the status of the cargo metadata command 2024-08-09 00:12:49 +02:00
mo8it
e41c3a7c92 Use fixed seeds with ahash 2024-08-08 23:48:54 +02:00
mo8it
1b9faa4d61 Update CHANGELOG 2024-08-08 23:48:54 +02:00
Mo
9f9a754a64 Merge pull request #2076 from senekor/remo/snryotxotoxv
Improve initialization in workspace
2024-08-08 23:48:09 +02:00
Mo
f7b0cfe8d1 Merge pull request #2075 from senekor/remo/swzqnkxqzutw
Replace hashbrown with ahash
2024-08-08 23:12:43 +02:00
mo8it
4ce8667b9d Show the exercise name in the waiting message 2024-08-08 22:48:53 +02:00
mo8it
0785b24192 Show a message before running the exercise 2024-08-08 22:41:41 +02:00
mo8it
34f02cf83d Attach error message as context 2024-08-08 22:37:56 +02:00
Remo Senekowitsch
8b43d79257 Fix integration tests 2024-08-08 14:08:06 +02:00
Remo Senekowitsch
dc086c6bf1 Improve initialization in workspace
- Detect if we are in a cargo project more reliably.
  (e.g. if `rustlings init` is run in the `src/` directory)

- Refuse to initialize rustlings in a non-workspace cargo project.

- Automatically populate the `workspace.members` field if `rustlings init` is
  run in a workspace.

  This may be considered risky, as there is no guarantee that's what the user
  wanted to do. However, it is consistent with the behavior of `cargo new`.
  Also, newcomers to Rust are unlikely to accidentally be in a cargo workspace,
  as they won't know how to create one in the first place.

  The use case for initialization in a workspace is when a workshop organizer
  wants to use rustlings alongside other exerices and provide a single
  repository with everything in one place.
2024-08-08 13:34:27 +02:00
Remo Senekowitsch
dc0ffbe16e Replace hashbrown with ahash
hashbrown is already used in the standard library, but we want the
improved performance of the different hash algorithm.
Using ahash directly conveys this intent more clearly.
2024-08-08 11:12:17 +02:00
mo8it
8df66f7991 Allow initialization in a workspace 2024-08-08 02:45:18 +02:00
mo8it
39580381fa rust-analyzer problem isn't fixed :( 2024-08-08 01:48:57 +02:00
mo8it
06a0f278e5 Don't recommend the builtin VS-Code terminal because it can't clear scrollback 2024-08-08 01:35:47 +02:00
mo8it
fd97470f35 Adapt type name in hint 2024-08-08 00:42:26 +02:00
mo8it
11fc3f1e56 Fix errors not being shown after the welcome message 2024-08-08 00:41:12 +02:00
mo8it
693bb708b2 Add README to the solutions dir 2024-08-08 00:41:12 +02:00
mo8it
97719fe8da Remove state file and solutions dir from .gitignore 2024-08-08 00:41:12 +02:00
mo8it
4933ace50b Add panic = "abort" for exercises 2024-08-08 00:41:12 +02:00
mo8it
81bf0a6430 Remove redundant rustfmt check for solutions 2024-08-08 00:41:12 +02:00
mo8it
24aed1b14e Update CHANGELOG 2024-08-08 00:41:12 +02:00
Mo
09c3ac02f8 Merge pull request #2062 from jimbo5922/jimbo5922-fix-hashmap3-struct-name
update struct name in hashmap3
2024-08-08 00:40:51 +02:00
Mo
45a39585b3 Merge pull request #2066 from matthewjnield/main
chore: Fix snakecase convention in errors6.rs
2024-08-08 00:36:46 +02:00
mo8it
286a455fa9 Avoid using RUSTFLAGS to not trigger rebuilding, especially in rust-analyzer 2024-08-07 23:35:50 +02:00
mo8it
bdf4960b6a Fix exercise name shift in exercise check 2024-08-07 23:25:22 +02:00
mo8it
13124aafe3 Update deps 2024-08-05 03:15:43 +02:00
Matt Nield
2128be8b28 chore: Fix snakecase convention in errors6.rs
Exercise errors6.rs prompts the user to add a method named `from_parseint`. This commit changes the method name to the corrected snakecase format, `from_parse_int`.
2024-08-04 02:36:45 -04:00
mo8it
175294fa5d Add rust-version 2024-08-02 16:40:06 +02:00
mo8it
5016c7cf7c Use trim_ascii instead of trim 2024-08-02 16:28:05 +02:00
mo8it
1468206052 Stop on first exercise solved 2024-08-02 15:54:14 +02:00
mo8it
d1ff4b5cf0 Remove newline 2024-08-01 19:19:25 +02:00
mo8it
700a065abd Fix rustfmt option 2024-08-01 19:19:14 +02:00
mo8it
3fc462f90f Fix tests 2024-08-01 19:17:40 +02:00
mo8it
65a8f6bb4b Run rustfmt on solutions in dev check 2024-08-01 19:14:09 +02:00
mo8it
e0f0944bff Refactor check_solutions 2024-08-01 15:53:32 +02:00
mo8it
c7590dd752 Improve the runner 2024-08-01 15:23:54 +02:00
mo8it
33a5680328 Hide cargo build warnings if there is no output 2024-08-01 11:28:26 +02:00
mo8it
455d87cadd Fix capacity 2024-08-01 11:26:30 +02:00
Yudai Kawabuchi
e65ae09789 fix format 2024-08-01 09:55:25 +09:00
Yudai Kawabuchi
dacdce1ea2 fix: update struct name in hashmap3 2024-08-01 09:47:50 +09:00
mo8it
766f3c50ec Add hint to run dev check again after dev update 2024-08-01 01:07:56 +02:00
mo8it
802b97b2ed Set stdin to null when running the binary of an exercise 2024-08-01 01:07:31 +02:00
mo8it
2ad408f2b8 Update deps 2024-07-31 18:54:24 +02:00
mo8it
c8fddd8f62 Add Github profile links for every author 2024-07-31 18:53:25 +02:00
mo8it
74fab994e2 Make the output optional 2024-07-28 20:30:23 +02:00
mo8it
3a99542f73 Run the final check in parallel 2024-07-28 17:39:46 +02:00
mo8it
2ae9f3555b Update deps 2024-07-28 13:30:31 +02:00
mo8it
1937b4bf66 Use the rexported crossterm from ratatui 2024-07-25 16:26:48 +02:00
mo8it
8beb290842 Test initialization 2024-07-25 16:14:38 +02:00
mo8it
8fec5155c7 Clean up tests 2024-07-25 15:12:14 +02:00
mo8it
3f49decce9 Remove assert_cmd and predicates 2024-07-25 14:34:43 +02:00
mo8it
e2492f65a0 Update deps 2024-07-25 12:51:44 +02:00
mo8it
5116a812fb tests3: Fix panic message 2024-07-22 12:02:59 +02:00
mo8it
82409c060f Update deps 2024-07-22 12:01:41 +02:00
mo8it
183ed3f88f Update dep 2024-07-17 14:33:29 +02:00
mo8it
447ac3c40b strings3: Improve hint 2024-07-17 14:32:45 +02:00
Mo
96f96927da Merge pull request #2050 from yapjiahong/main
doc: enchane string3 exercise hint
2024-07-17 14:31:17 +02:00
yapjiahong
2c79e29483 doc: enchane string3 exercise hint 2024-07-17 00:43:42 +08:00
mo8it
362473dde0 Sync exercise and solution 2024-07-16 18:21:07 +02:00
Mo
8339682112 Merge pull request #2049 from Vexcited/patch-1
fix: Lyche becomes Lychee
2024-07-16 18:18:46 +02:00
Mikkel ALMONTE--RINGAUD
3f06d767b5 fix: Lyche becomes Lychee
Small typo.
2024-07-16 17:20:26 +02:00
mo8it
2854dc9ab3 Update CI and release hook 2024-07-13 12:32:23 +02:00
mo8it
516fcf9168 Update section 2024-07-13 12:07:52 +02:00
mo8it
12d1971b0d Update section about command not found 2024-07-13 12:02:39 +02:00
mo8it
3e09e509d6 Add section about rustlings not found 2024-07-13 12:00:22 +02:00
mo8it
99fb11cc72 Update syn 2024-07-13 11:53:59 +02:00
mo8it
d176ddd27e Improve TODO comment 2024-07-12 16:29:41 +02:00
mo8it
0847b3a4bf chore: Release 2024-07-10 16:51:34 +02:00
mo8it
6d2ea8dae3 Update CHANGELOG 2024-07-10 16:49:36 +02:00
mo8it
47ba4502e0 move_semantics2: Mention cloning in the hint 2024-07-10 15:55:18 +02:00
mo8it
6263cb6456 Add note about iterating over Option 2024-07-10 15:16:49 +02:00
mo8it
d7024d80ce move_semantics4: Avoid using the dereference operator 2024-07-10 13:50:39 +02:00
mo8it
59d6b852af move_semantics5: Move main to the end 2024-07-10 13:47:33 +02:00
mo8it
e512928df5 Update deps 2024-07-10 13:27:32 +02:00
Mo
a38029e3e7 Merge pull request #2037 from jaads/fix-iterators-2-hint
Updated name of variable name in hint
2024-07-10 11:33:45 +02:00
Jan Arends
b12b652a57 updated variable name in hint 2024-07-10 11:16:35 +02:00
mo8it
c793416495 Fix typo 2024-07-08 16:50:35 +02:00
mo8it
01343f187b Explain what a factorial is and link to wikipedia for more details 2024-07-08 16:29:43 +02:00
mo8it
69021e1497 Remove stable from book links 2024-07-08 16:00:12 +02:00
mo8it
08c408aae0 Add hint about string concatination with + 2024-07-08 15:20:56 +02:00
mo8it
bf698659b0 Sync comment from exercise 2024-07-08 15:20:23 +02:00
mo8it
2d5d70693a errors3: Add a comment to prevent changing the wrong line 2024-07-08 15:05:58 +02:00
mo8it
a4091ade5c iterators3: Add IntegerOverflow error variant 2024-07-08 14:40:35 +02:00
mo8it
a7a881809f Check is_terminal 2024-07-08 12:53:44 +02:00
mo8it
0f4cb94cfe quiz2: Use repeat 2024-07-07 20:28:31 +02:00
Mo
6469e9734b Merge pull request #2031 from NewtonChutney/patch-1
Update iterator solution in quiz2.rs
2024-07-07 20:25:21 +02:00
NitinKM
5372caefb3 Update iterator sol in quiz2.rs 2024-07-07 23:19:38 +05:30
mo8it
9d7b973a62 Improve the comments in cow1 2024-07-07 17:03:00 +02:00
mo8it
a5f221aa39 Improve some messages 2024-07-07 15:53:48 +02:00
mo8it
e764b75aef This'll -> This will 2024-07-07 15:41:35 +02:00
mo8it
708cfef3f7 enums3: Avoid confusion with parentheses 2024-07-07 15:29:05 +02:00
mo8it
01b8432d58 Mark the last exercise as done 2024-07-07 13:55:39 +02:00
mo8it
9b5b652c71 Fix link on website 2024-07-07 00:28:17 +02:00
mo8it
981a4778a9 Add newline between functions 2024-07-06 22:23:19 +02:00
mo8it
5d4363d58d Add comma 2024-07-06 22:22:52 +02:00
Mo
48697b8225 Merge pull request #2027 from yerke/patch-2
Fix formatting in strings4.rs
2024-07-06 22:22:27 +02:00
Mo
1652bb67d9 Merge pull request #2026 from yerke/patch-1
Fix typo in structs3.rs
2024-07-06 22:21:15 +02:00
Yerkebulan Tulibergenov
1499f681a3 Fix formatting in strings4.rs 2024-07-06 12:53:14 -07:00
Yerkebulan Tulibergenov
a21fa6ff40 Fix typo in structs3.rs 2024-07-06 12:37:55 -07:00
Mo
186dc3c1ab Merge pull request #2025 from mre/patch-1
Fix typo in `THIRD_PARTY_EXERCISES.md`
2024-07-06 17:06:03 +02:00
Matthias Endler
6b7a27d080 Fix typo in THIRD_PARTY_EXERCISES.md 2024-07-06 14:30:11 +02:00
Mo
c9017f9f7a Merge pull request #2022 from matthewjnield/main
chore: Update errors5.rs exercise to be consistent with solution
2024-07-06 13:25:03 +02:00
Matt Nield
fdada8b3d4 chore: Update errors5.rs exercise to be consistent with solution
In errors5.rs, there are two lines of a pattern matching block for which the order is reversed between the exercise file and the solution file. Since these lines are not changed as part of the exercise, this commit updates the exercise to make the order of the lines consistent with the solution, so that users will focus only on the lines that change between the exercise and the solution.
2024-07-05 16:04:07 -04:00
Mo
9e2ff7d037 Merge pull request #2021 from matthewjnield/main
fix: Add clarification to instructions for hashmaps2.rs
2024-07-05 15:52:20 +02:00
mo8it
65834fc420 Improve quizes 2024-07-05 15:38:59 +02:00
mo8it
f5a4965de7 Improve wording in quiz1 2024-07-05 15:38:33 +02:00
mo8it
db5911eb73 Use *= 2024-07-05 15:31:39 +02:00
Matt Nield
2f4e63b443 fix: Add clarification to instructions for hashmaps2.rs
In the instructions for hashmaps2.rs, the last sentence of the include the phrase "these fruits", which refers to fruits that were mentioned two sentences prior.

Having a sentence in between the first sentence in which the fruits were described and a later sentence in which the phrase "these fruits" is used makes this confusing to read, since the phrase "these fruits" does not come immediately after the mention of the fruits that the phrase refers to.

This pull request expands the last sentence to explicitly refer to the fruits being mentioned, in order to add clarity about the requirement of the exercise.
2024-07-05 08:27:51 -04:00
mo8it
584164a6ff Adjust enums exercises 2024-07-05 14:11:03 +02:00
mo8it
e6f6d26d13 Import enum variants in all tests 2024-07-05 13:45:14 +02:00
Mo
67d8d5848c Merge pull request #1774 from matthri/fix-enum-variant-inconsistency
Make enum variants more consistent between exercises
2024-07-05 13:43:25 +02:00
mo8it
43d15f09f0 Readd "structs" 2024-07-05 13:41:04 +02:00
mo8it
7123c7ae3a Merge remote-tracking branch 'upstream/main' into fix-enum-variant-inconsistency 2024-07-05 13:39:50 +02:00
Mo
4d9c346a17 Merge pull request #2019 from Nahor/iterator5
Add alternative solution for iterators5
2024-07-05 11:45:42 +02:00
Nahor
deed9d3943 Add alternative solution for iterators5 2024-07-04 16:35:39 -07:00
mo8it
652f0c7676 Fix tests 2024-07-04 23:39:06 +02:00
Mo
e479ec8fb6 Merge pull request #2018 from Nahor/iterators4
Unify fn signature in iterators4 exercise and solution
2024-07-04 23:37:38 +02:00
Nahor
a33501e6a7 Unify fn signature in iterators4 exercise and solution
Since this is not about conversion, prefer the option that doesn't
require one.
2024-07-04 14:23:34 -07:00
Mo
47f8199a99 Merge pull request #2017 from Nahor/main
Fix misleading test name
2024-07-04 21:14:02 +02:00
mo8it
4bf0ddc0e1 Check exercises unsolved 2024-07-04 21:12:57 +02:00
Nahor
4cd0ccce83 Fix misleading test name 2024-07-04 11:58:09 -07:00
mo8it
a3657188b6 Check for missing TODO comments 2024-07-04 20:28:46 +02:00
mo8it
b8fcd11286 chore: Release 2024-07-04 20:02:43 +02:00
mo8it
4810555038 Update CHANGELOG 2024-07-04 20:02:30 +02:00
mo8it
84b291852c Update deps 2024-07-04 19:48:09 +02:00
mo8it
74831dd88f Add TODO 2024-07-04 19:46:43 +02:00
mo8it
0b220f9fff Fix clippy1 2024-07-04 19:46:43 +02:00
Mo
d3cdeed871 Merge pull request #2015 from ramenhost/fix-move_semantics5
move_semantics5: change to fix misleading compiler error
2024-07-04 16:25:57 +02:00
Ramkumar
0524632199 fix move_semantics5 to change misleading compiler error 2024-07-04 18:48:09 +05:30
mo8it
30d5b7db92 Require solutions 2024-07-04 13:41:03 +02:00
mo8it
2f60f4d9ea Remove newline at the end of multiline strings 2024-07-04 13:38:57 +02:00
mo8it
b017b87866 Fix typo 2024-07-04 13:38:41 +02:00
mo8it
b87aa98634 Fix warnings 2024-07-04 13:38:35 +02:00
mo8it
a4c07ca948 Improve the comment in intro1 2024-07-04 13:10:18 +02:00
mo8it
b8826dd3b3 Remove comment about removing a semicolon 2024-07-04 13:08:59 +02:00
mo8it
d54c050985 Improve a comment in errors2 2024-07-04 13:03:05 +02:00
mo8it
248dd4415e Add comment to options1 2024-07-04 13:00:04 +02:00
mo8it
dec6772b05 Improve the comment of arc1 2024-07-04 12:58:04 +02:00
Mo
b4f4c79ac4 Merge pull request #2012 from cbochs/main
fix: typo s/unwarp/unwrap/
2024-07-04 09:00:31 +02:00
Calvin Bochulak
c1d5252b87 fix: typo s/unwarp/unwrap/ 2024-07-03 23:20:59 -06:00
Mo
0f71e12235 Merge pull request #2011 from rust-lang/ci
Update CI
2024-07-03 18:02:43 +02:00
mo8it
fa6b7d77b2 Run dev check only on Linux 2024-07-03 17:59:10 +02:00
mo8it
a72c26bdc3 Fix solution of options1 for stable Rust 2024-07-03 17:53:30 +02:00
mo8it
fe3292c170 Remove dtolnay/rust-toolchain 2024-07-03 17:52:44 +02:00
mo8it
ad66fe0074 Update checkout in web.yml 2024-07-03 17:51:06 +02:00
mo8it
df64893f2b Update CI 2024-07-03 17:49:41 +02:00
Mo
e5bc8588e0 Merge pull request #2010 from rust-lang/oranda
Remove install page for now, README is enough
2024-07-03 16:27:37 +02:00
mo8it
23bc5d23fe Remove install page for now, README is enough 2024-07-03 16:23:23 +02:00
mo8it
28d2bb0432 chore: Release 2024-07-03 15:32:46 +02:00
mo8it
1c010a129e Update deps 2024-07-03 15:28:53 +02:00
mo8it
f5ce4cf0a5 Merge branch 'v6' 2024-07-03 15:26:35 +02:00
mo8it
ff3e6c05a5 Merge branch 'main' 2024-07-03 15:26:05 +02:00
mo8it
33dfe5331a Update CHANGELOG 2024-07-03 15:24:07 +02:00
Mo
888ad35d10 Merge pull request #2009 from Yung-Beef/patch-2
Update README.md
2024-07-03 01:04:19 +02:00
Yung Beef 4.2
fa452b3a93 Update README.md 2024-07-02 18:30:54 -03:00
mo8it
2f8fa469ac Small writing changes 2024-07-02 16:26:59 +02:00
mo8it
d3a0c26999 Improve the placement of TODO comments 2024-07-02 16:26:28 +02:00
mo8it
95f10c8068 Update CHANGELOG 2024-07-02 16:10:42 +02:00
mo8it
9bb174e96e Add a guide for third-party exercises 2024-07-02 16:09:05 +02:00
mo8it
4c5573b09f Update CONTRIBUTING 2024-07-02 14:45:25 +02:00
mo8it
43eb014026 Update README 2024-07-02 14:45:19 +02:00
mo8it
2d792651ea chore: Release 2024-07-02 14:29:07 +02:00
mo8it
6cf75d569b Fix typos 2024-07-02 14:28:08 +02:00
mo8it
67ce9b9e56 Underline "next" 2024-07-02 01:50:05 +02:00
mo8it
bcebbb9df6 Update deps 2024-07-02 01:45:55 +02:00
mo8it
bdd76cdf77 Merge branch 'run-sols-in-parallel' 2024-07-02 01:43:22 +02:00
mo8it
825637f32c as_ref_mut solution 2024-07-02 01:35:38 +02:00
mo8it
8ef5d10da2 Import the error variants in the tests 2024-07-02 01:29:30 +02:00
mo8it
5217cdc5e2 try_from_into solution 2024-07-02 01:26:09 +02:00
mo8it
e3c8c457ba from_str solution 2024-07-02 01:03:55 +02:00
mo8it
cddaf4881e from_into solution 2024-07-01 22:09:48 +02:00
mo8it
428d64ffa0 using_as solution 2024-07-01 21:41:22 +02:00
mo8it
09c94bef2d clippy3 solution 2024-07-01 12:09:52 +02:00
mo8it
a0e810b471 clippy2 solution 2024-07-01 11:55:18 +02:00
mo8it
78728d5238 clippy1 solution 2024-07-01 11:54:35 +02:00
mo8it
cc2c0958c9 macros4 solution 2024-07-01 11:54:05 +02:00
mo8it
4cb15a4cda macros3 solution 2024-07-01 11:37:48 +02:00
mo8it
9845e046de macros2 solution 2024-07-01 11:31:37 +02:00
mo8it
cf90364fd7 macros1 solution 2024-07-01 11:28:38 +02:00
mo8it
a13e3cd07f threads3 solution 2024-07-01 11:23:40 +02:00
mo8it
dfa2b44f71 threads2 solution 2024-07-01 11:11:11 +02:00
mo8it
b000164eed threads1 solution 2024-07-01 10:59:33 +02:00
mo8it
663a03a17b cow1 solution 2024-06-29 02:07:56 +02:00
mo8it
a943f5ba32 arc1 solution 2024-06-29 01:48:00 +02:00
mo8it
f3842aa746 rc1 solution 2024-06-29 01:20:59 +02:00
Mo
18a9a2e791 Merge pull request #2007 from Yung-Beef/patch-1
docs: clarifying quiz 2 instructions
2024-06-28 23:16:20 +02:00
mo8it
61c7eaed62 box1 solution 2024-06-28 21:24:35 +02:00
Yung Beef 4.2
2dcf917fa1 docs: clarifying quiz 2 instructions 2024-06-28 15:49:09 -03:00
mo8it
f53d458920 iterators5 solution 2024-06-28 16:11:14 +02:00
mo8it
2af437fd90 iterators4 solution 2024-06-28 15:31:15 +02:00
mo8it
56a9197f55 iterators3 solution 2024-06-28 15:00:13 +02:00
mo8it
eddbb97934 iterators2 solution 2024-06-28 02:48:21 +02:00
mo8it
4f71f74b44 Use todo!() instead of ??? 2024-06-28 02:26:35 +02:00
mo8it
cf9041c0e4 iterators1 solution 2024-06-28 02:07:56 +02:00
mo8it
746cf6863d Remove tests3 and add solution to tests4 2024-06-27 17:29:33 +02:00
mo8it
803e32dad2 tests2 solution 2024-06-27 16:40:26 +02:00
mo8it
a4f8826301 tests1 solution 2024-06-27 16:29:03 +02:00
mo8it
6187216606 lifetimes3 solution 2024-06-27 16:15:53 +02:00
mo8it
275a854d6e lifetimes2 solution 2024-06-27 13:24:27 +02:00
mo8it
7efccc36b4 lifetimes1 solution 2024-06-27 13:24:21 +02:00
mo8it
64c2de95ca quiz3 solution 2024-06-27 13:01:52 +02:00
mo8it
c170740423 Highlight change in traits4 solution 2024-06-27 12:29:35 +02:00
mo8it
45cfe86fb0 traits5 solution 2024-06-27 12:29:25 +02:00
mo8it
db4d649e55 Remove move_semantics6 2024-06-27 12:27:53 +02:00
mo8it
c0452d160b traits4 solution 2024-06-27 12:23:33 +02:00
mo8it
b4b7ae63ad traits3 solution 2024-06-27 12:11:57 +02:00
mo8it
c07209b635 Unify info.toml 2024-06-27 12:00:28 +02:00
mo8it
091e1e7f7a traits2 solution 2024-06-27 11:58:44 +02:00
mo8it
92f249a52c Merge branch 'main' 2024-06-27 11:30:42 +02:00
mo8it
e6228e92b4 Merge remote-tracking branch 'refs/remotes/origin/main' 2024-06-27 11:18:41 +02:00
mo8it
3e9c4c8bb8 Update deps 2024-06-27 11:18:21 +02:00
Mo
22b650c092 Merge pull request #2004 from xavdid/fix-typo
chore(from_into): Add missing period in docs
2024-06-27 11:04:28 +02:00
David Brownman
f0849447ad chore(from_into): Add missing period in docs 2024-06-26 19:06:25 -07:00
mo8it
789223cc9e traits1 solution 2024-06-27 03:04:57 +02:00
mo8it
de3f846a53 generics2 solution 2024-06-27 02:25:11 +02:00
mo8it
46121b71cf generics1 rewrite and solution 2024-06-27 02:00:08 +02:00
mo8it
b1daea1fe8 errors6 solution 2024-06-27 01:12:50 +02:00
mo8it
129884aff7 errors5 solution 2024-06-26 18:21:19 +02:00
mo8it
720b280bc1 Update deps 2024-06-26 16:59:13 +02:00
mo8it
9b7a5c041e errors4 solution 2024-06-26 15:54:18 +02:00
mo8it
c46d8bdf95 errors3 solution 2024-06-26 15:44:33 +02:00
mo8it
050a23ce67 errors2 solution 2024-06-26 15:36:14 +02:00
mo8it
2afe6b38d3 Fix tests 2024-06-26 15:12:58 +02:00
mo8it
097f3c74ea errors1 solution 2024-06-26 15:06:29 +02:00
mo8it
25b5686dd2 options3 solution 2024-06-26 14:47:57 +02:00
mo8it
a91888e79e option2 solution 2024-06-26 14:35:05 +02:00
mo8it
c31e15c4cf options1 solution 2024-06-26 12:59:10 +02:00
mo8it
1694682aa4 Fix typos 2024-06-26 02:26:04 +02:00
mo8it
29bcb282da quiz2 solution 2024-06-26 02:25:59 +02:00
mo8it
f1bd444792 hashmaps3 solution 2024-06-26 01:52:33 +02:00
mo8it
fbc226a510 hashmaps2 solution 2024-06-24 16:50:03 +02:00
mo8it
5baa503bfc hashmaps1 solution 2024-06-24 13:20:50 +02:00
Mo
0cd96afe63 Merge pull request #1782 from danielsomerfield/main
Fix all_fruits_types_in_basket to fail if all fruit kinds are not  included
2024-06-24 13:00:53 +02:00
mo8it
3d540ed946 modules3 solution 2024-06-22 13:35:54 +02:00
mo8it
98cd00de63 modules2 solution 2024-06-22 13:24:06 +02:00
mo8it
ecbe9b7324 modules1 solution 2024-06-22 13:12:39 +02:00
mo8it
879f0cd5c6 strings4 solution 2024-06-22 12:51:21 +02:00
mo8it
613ec23f84 strings 3 solution 2024-06-22 12:22:24 +02:00
mo8it
f574905b8e strings2 solution 2024-06-22 12:14:04 +02:00
mo8it
bd63ece47c string1 solution 2024-06-22 12:05:28 +02:00
mo8it
2901d85662 enums3 solution 2024-06-21 23:18:25 +02:00
mo8it
020711fa97 enums3 solution 2024-06-21 23:05:40 +02:00
mo8it
a2dfbd86da enums1 solution 2024-06-21 23:00:38 +02:00
mo8it
d6fd251a73 structs3 solution 2024-06-21 22:54:00 +02:00
mo8it
1264510fc0 structs2 solution 2024-06-21 22:31:06 +02:00
mo8it
ef842d3a94 structs1 solution 2024-06-21 22:22:37 +02:00
mo8it
d768353806 Fix typo 2024-06-21 18:29:00 +02:00
mo8it
e4dbbbf5f5 Remove move_semantics4, add rest of move_semantics solutions 2024-06-21 18:14:19 +02:00
Mo
42b5c0a1f7 Merge pull request #1997 from jphilis/main
chore: update error message to error message given by rustc (error[E0596]) in hint
2024-06-21 17:11:48 +02:00
mo8it
fd558065c7 move_semantics3 solution 2024-06-21 17:04:51 +02:00
mo8it
68142aff7f move_semantics2 solution 2024-06-21 17:02:50 +02:00
mo8it
946c29679e move_semantics1 solution 2024-06-21 16:16:52 +02:00
mo8it
6a79ada7f2 Add comment to vecs2 2024-06-21 15:06:50 +02:00
mo8it
835ec72622 vecs2 solution + significant change to have a better comparison between both methods 2024-06-21 14:52:11 +02:00
mo8it
a9f0c7bf1f vecs1 solution 2024-06-20 01:00:06 +02:00
jphilis
1ede3a82e9 chore: update error message to error message given by rustc. error[E0596] 2024-06-19 14:55:34 +02:00
mo8it
0abcdeed42 primitive_types6 solution 2024-06-19 14:25:29 +02:00
mo8it
532c9ebb30 primitive_types5 solution 2024-06-19 14:17:06 +02:00
mo8it
2a1bc53771 Update deps 2024-06-19 14:03:06 +02:00
mo8it
5bf8d1fa1b Fix typos 2024-06-14 13:32:37 +02:00
mo8it
2ff1813746 Update deps 2024-06-14 13:32:02 +02:00
mo8it
42a3503906 Run solutions in parallel 2024-06-10 17:42:11 +02:00
mo8it
98db579014 primitive_types4 solution 2024-06-08 23:42:15 +02:00
mo8it
0338b1cbdf primitive_types3 solution 2024-06-08 21:43:38 +02:00
mo8it
e1051724c3 primitive_types2 solution 2024-06-08 21:35:44 +02:00
mo8it
0e4136d31e Update deps 2024-06-08 21:19:16 +02:00
mo8it
f8d38320cd Fix typos 2024-06-06 01:59:09 +02:00
mo8it
42bd0b8b75 Update deps 2024-06-06 01:58:05 +02:00
mo8it
08ac11ff22 Add --require-solutions option to dev check 2024-06-02 00:11:41 +02:00
mo8it
6ae4a979f4 Check for unexpected files in the solutions dir 2024-06-02 00:03:48 +02:00
mo8it
a3ada0eee8 Print the exercise solution on check 2024-06-01 21:51:45 +02:00
mo8it
50530fa3cf Don't try to check a solution that doesn't exist 2024-06-01 21:50:11 +02:00
mo8it
611f9d8722 Check that all solutions run successfully 2024-06-01 21:48:15 +02:00
mo8it
8e9c99ae5b Change condition order 2024-06-01 15:10:43 +02:00
mo8it
c324ea10df Update deps 2024-06-01 15:10:17 +02:00
mo8it
1984a8d38e Update Cargo.toml with the solution bins 2024-06-01 15:01:27 +02:00
mo8it
84a818dbda Update the bins buffer capacity 2024-06-01 15:01:18 +02:00
Mo
d140d49b61 Merge pull request #1978 from jkauerl/main
Change hints of exercises traits4 and traits5 for a better learning experience
2024-05-29 20:44:55 +02:00
mo8it
beb7b24e8e Add solutions to bins 2024-05-25 18:19:30 +02:00
Javier Kauer
5337620476 docs: improved syntaxis of hint of traits4 and traits5 2024-05-25 18:16:44 +02:00
mo8it
990c68efcb primitive_types1 solution 2024-05-25 16:31:21 +02:00
mo8it
8d4145038d Update deps 2024-05-25 16:15:35 +02:00
mo8it
f2c3dcab3a quiz1 solution 2024-05-22 16:35:57 +02:00
mo8it
73e84f8379 if3 solution 2024-05-22 15:54:35 +02:00
mo8it
eafb157d60 if2 solution 2024-05-22 15:16:50 +02:00
mo8it
7cdf6b7942 Add missing semicolons 2024-05-22 15:13:18 +02:00
mo8it
c8ad6c3960 if1 solution 2024-05-22 15:04:21 +02:00
mo8it
3bb71c6b0c Remove unneeded pub 2024-05-22 15:04:12 +02:00
mo8it
d0b843d6c4 Add solutions to functions 2024-05-21 02:43:18 +02:00
mo8it
0f4c42d54e Add solutions to intro and variables 2024-05-21 01:47:57 +02:00
mo8it
bde2524c3b Update deps 2024-05-20 18:11:19 +02:00
mo8it
cf3f6fd6a1 Fix typo 2024-05-14 01:50:03 +02:00
mo8it
c8481d35c1 Done documentation 2024-05-14 01:49:22 +02:00
mo8it
96a44f3dcf Make it more clear that only one char is expected 2024-05-14 01:23:58 +02:00
mo8it
0ae66d1860 Remove inline 2024-05-14 00:55:07 +02:00
mo8it
700605ff35 Document init 2024-05-14 00:35:12 +02:00
mo8it
a67e63cce0 Document info_file 2024-05-13 22:02:45 +02:00
mo8it
d48e86b154 Use public comments for public items 2024-05-13 21:40:40 +02:00
mo8it
39a19f9450 Document exercise 2024-05-13 21:36:20 +02:00
mo8it
2dfc7cdb1a Document embedded 2024-05-13 21:07:04 +02:00
mo8it
0add5ac240 chore: Release 2024-05-13 17:14:11 +02:00
mo8it
5a1d95028c Update version in README 2024-05-13 17:14:00 +02:00
mo8it
e80e91faf2 Thanks Clippy :) 2024-05-13 17:12:58 +02:00
mo8it
4ae3fcc3ca Don't skip exercises on file changes 2024-05-13 17:06:11 +02:00
mo8it
17a2d42ffd Better variable naming 2024-05-13 16:44:48 +02:00
mo8it
a7bc6d53a5 Only send Unrecognized on ENTER if the last input wasn't valid 2024-05-13 16:39:38 +02:00
mo8it
56eb4a5d65 chore: Release 2024-05-13 04:11:29 +02:00
mo8it
f6cf6c611c Fix Windows terminal links 2024-05-13 04:11:11 +02:00
mo8it
7a74a72dc8 Update beta version in README 2024-05-13 02:48:42 +02:00
mo8it
a4da216a5c chore: Release 2024-05-13 02:46:26 +02:00
mo8it
8b2d9ed503 Use PartialEq instead of matches! 2024-05-13 02:45:12 +02:00
mo8it
d2b5906be2 No more word input 2024-05-13 02:37:32 +02:00
mo8it
f9e35a4344 Improve input handling 2024-05-13 02:32:25 +02:00
mo8it
0525739046 Fix invisible input on Windows 2024-05-13 02:20:04 +02:00
mo8it
11fda5d70f Move info.toml to rustlings-macros/
This improves the experience for contributors on Windows becuase
Windows can't deal with git symbolic links out of the box…
2024-05-13 01:25:38 +02:00
Mo
c7a18b0781 Merge pull request #1974 from hamirmahal/refactor/remove-referent-for-readability
refactor: remove `referent` to improve readability
2024-05-13 00:15:28 +02:00
Hamir Mahal
01a78531ad refactor: remove referent to improve readability 2024-05-12 15:10:50 -07:00
Mo
c2414b8891 Merge pull request #1951 from hamirmahal/ci/add-clippy-job-to-workflow
ci: add `clippy` job to `rust.yml` workflow
2024-05-12 22:47:45 +02:00
Mo
f03020a7e2 Merge pull request #1961 from Allupeng/main
docs : add a comma in structs3.rs file
2024-05-12 22:46:07 +02:00
mo8it
01509a2a84 Remove comma 2024-05-12 22:45:18 +02:00
Mo
66b3a9cdd7 Merge pull request #1973 from iamcult/main
chore: update flake.lock
2024-05-12 22:25:54 +02:00
iamcult
baca8c9667 chore: update flake.lock 2024-05-12 14:48:06 -04:00
mo8it
d9df809838 Optimize embedded dirs 2024-05-12 17:40:53 +02:00
mo8it
da9f97b0e0 Update deps 2024-05-12 01:35:30 +02:00
mo8it
2d0497bf3b Fix errors 2024-05-02 17:08:39 +02:00
mo8it
5e7afce019 Document dev 2024-05-01 19:47:35 +02:00
mo8it
74180ba1cc Check for tests while test=false 2024-05-01 19:16:59 +02:00
mo8it
d425dbe203 Test run_cmd 2024-05-01 18:08:18 +02:00
mo8it
32415e1e6c Document cmd 2024-05-01 17:55:49 +02:00
mo8it
8e178ac60d Document and test cargo_toml 2024-04-30 02:48:56 +02:00
mo8it
3ae6c208b2 Disable the pretty format because of --show-output 2024-04-30 02:43:51 +02:00
mo8it
563727f47f test next_pending_exercise_ind 2024-04-30 02:14:20 +02:00
mo8it
2b7ac91505 Add press_enter_prompt 2024-04-30 01:46:57 +02:00
mo8it
52c0f5b39e Fix clearing the terminal 2024-04-30 01:41:08 +02:00
mo8it
fef66b80ad Implement From<ExerciseInfo> for Exercise 2024-04-30 01:39:31 +02:00
mo8it
b6f40f2ec8 Document main and app_state 2024-04-29 17:01:47 +02:00
allupeng
8c3b8dcec4 doc : add a dot in hashmaps1.rs file to fill e.g. 2024-04-29 14:18:04 +08:00
mo8it
7f73219041 chore: Release 2024-04-29 00:36:50 +02:00
mo8it
196d3c1a98 Bump version 2024-04-29 00:36:13 +02:00
mo8it
8c60ac267e Add working environment section 2024-04-29 00:26:53 +02:00
mo8it
3c7e7368b2 Add solutions to the initialized .gitignore 2024-04-28 23:25:44 +02:00
mo8it
593f0e0916 Revert escaping with ESC in list to be able to clear the message 2024-04-28 23:22:11 +02:00
mo8it
1508938fed Highlight the active filter 2024-04-28 23:21:13 +02:00
allupeng
881d3e9441 doc : add a dot in structs3.rs file 2024-04-28 18:03:22 +08:00
mo8it
aedeff8b24 Reorder the footer keys 2024-04-27 23:45:26 +02:00
mo8it
75e2804c83 Esacpe the list with ESC 2024-04-27 23:42:09 +02:00
mo8it
c45d2c3255 Remove the I AM NOT DONE check 2024-04-27 23:38:38 +02:00
mo8it
ea40804371 Put long version in () 2024-04-27 23:38:26 +02:00
mo8it
ee2b772dd5 Update intro1 hint 2024-04-27 23:38:05 +02:00
mo8it
62a2c1a6d9 Put long version in () 2024-04-27 23:37:44 +02:00
mo8it
de0befef9c Update intro1 2024-04-27 23:37:17 +02:00
mo8it
5658998c0c Update welcome and final messages 2024-04-27 23:24:09 +02:00
mo8it
89e0f64279 chore: Release 2024-04-27 17:35:08 +02:00
mo8it
edea76b5b9 Bump version 2024-04-27 17:34:39 +02:00
mo8it
016e6a014e Update serde 2024-04-27 17:32:42 +02:00
mo8it
cdeb8ce229 Fix initialization 2024-04-27 17:31:51 +02:00
mo8it
12504b01e9 Disable unneeded features in deps 2024-04-27 04:32:06 +02:00
mo8it
c3a92b1248 Update deps 2024-04-27 04:21:29 +02:00
mo8it
181c81f016 chore: Release 2024-04-27 04:17:24 +02:00
mo8it
cb7ce006b5 Bump version 2024-04-27 04:17:10 +02:00
mo8it
2150d629b1 Use --show-output instead of --nocapture 2024-04-27 04:15:16 +02:00
mo8it
c82c367324 Respect the target-dir config and show tests' output 2024-04-27 04:14:59 +02:00
mo8it
dc5c72bc19 Update README.md 2024-04-26 03:44:16 +02:00
mo8it
0ce5d9d4d7 Update README.md 2024-04-26 03:39:38 +02:00
mo8it
37fcbeb596 Add indentation for details 2024-04-26 03:29:05 +02:00
mo8it
2f071c97b0 Update README.md 2024-04-26 03:25:31 +02:00
mo8it
9664f4357c Use HTML in the summary 2024-04-26 03:20:34 +02:00
mo8it
74ae506603 Update README 2024-04-26 03:17:35 +02:00
mo8it
2965867338 Add click to expand 2024-04-26 02:02:14 +02:00
mo8it
e63e668d86 Use <details> 2024-04-26 02:00:42 +02:00
mo8it
b7289e59aa Put --locked in the troubleshooting section 2024-04-26 01:55:44 +02:00
mo8it
be4dfe8be0 Add hint about updating Rust 2024-04-26 01:49:36 +02:00
mo8it
e230ffcf03 Update the contributing guide 2024-04-26 01:19:52 +02:00
mo8it
0d7b036137 chore: Release 2024-04-25 21:07:41 +02:00
mo8it
078142c43c Update dev/Cargo.toml 2024-04-25 21:07:10 +02:00
mo8it
5920a58e83 Include dev/Cargo.toml 2024-04-25 19:58:55 +02:00
mo8it
aaea5b490f chore: Release 2024-04-25 19:54:59 +02:00
mo8it
8d45cdb09d Fix missing info.toml in the macros crate 2024-04-25 19:54:03 +02:00
mo8it
a4e623ea94 Fix releasing rustlings 2024-04-25 19:33:24 +02:00
mo8it
5595e1c397 chore: Release 2024-04-25 19:32:10 +02:00
mo8it
ca41f9e2df Prepare for using cargo-release 2024-04-25 19:02:07 +02:00
mo8it
177e2870c5 Edit comment 2024-04-25 16:30:01 +02:00
mo8it
3ce3235294 Show warnings and errors in the tests 2024-04-25 16:08:07 +02:00
mo8it
c51f1b3f31 Thanks Clippy :D 2024-04-25 15:58:46 +02:00
mo8it
8bf8b19a5d Improve output after initialization 2024-04-25 15:51:12 +02:00
mo8it
6d1d42d2dd Try to run git init 2024-04-25 15:41:52 +02:00
mo8it
212c82c6f6 Don't ignore .vscode/extensions.json when developing third-party exercises 2024-04-25 15:34:58 +02:00
mo8it
fcefa3d614 Name the exercises' package exercises 2024-04-25 15:33:24 +02:00
mo8it
b3b4b7d59c Update initialized .gitignore 2024-04-25 15:23:24 +02:00
mo8it
29abaee4ec Update dep 2024-04-25 15:22:14 +02:00
mo8it
c7c8d99680 Moar responsive :P 2024-04-25 15:22:11 +02:00
mo8it
c1d28b502e Format test file :P 2024-04-25 14:51:14 +02:00
mo8it
14fe248b4b Optimize the notify event handler 2024-04-25 14:44:12 +02:00
Mo
88f27a5377 Merge pull request #1959 from rust-lang/output
Improve output
2024-04-25 14:43:28 +02:00
mo8it
1f1a62d83e Raise the output capacity 2024-04-25 14:43:02 +02:00
mo8it
428998a4cf Quicker response to file changes 2024-04-25 03:28:44 +02:00
mo8it
d26f47dddd Fix tests 2024-04-25 03:27:41 +02:00
mo8it
2af0cd9cce Replace mode by test and strict_clippy 2024-04-25 03:25:45 +02:00
mo8it
f92d45fa68 Use write macros instead of write_fmt 2024-04-25 02:03:26 +02:00
mo8it
67fa017742 Use os_pipe 2024-04-25 01:56:01 +02:00
mo8it
d8c2ab8349 Fix tests 2024-04-24 16:26:48 +02:00
mo8it
0df0be8352 Update Cargo.lock 2024-04-24 16:26:34 +02:00
mo8it
8ebd2f9df2 Update Cargo.toml files 2024-04-24 16:15:14 +02:00
mo8it
4ef345e706 Update dependency 2024-04-24 15:58:34 +02:00
mo8it
0a2d4dae5a Merge branch 'main' 2024-04-24 15:48:29 +02:00
mo8it
71053101c3 Add --locked 2024-04-24 13:28:25 +02:00
Mo
53fdb9044d Merge pull request #1955 from rust-lang/solutions
Solutions
2024-04-24 02:56:20 +02:00
mo8it
8a085a0a85 Dump solution and show its path 2024-04-24 02:52:30 +02:00
mo8it
edf5762612 Preallocate path 2024-04-24 01:17:39 +02:00
mo8it
ef02c6c6ab Use the embedded info.toml in debug mode 2024-04-24 00:58:52 +02:00
mo8it
e4ee2cd548 Don't write solutions in debug mode 2024-04-24 00:48:58 +02:00
mo8it
b77007887c Write the solution file on done 2024-04-24 00:47:46 +02:00
mo8it
2dac8e509b Refactor embedded files to add solutions 2024-04-23 19:18:25 +02:00
mo8it
e5a19a4c33 Update deps 2024-04-23 15:32:07 +02:00
mo8it
5349f0e8d4 Add README to the quizzes directory 2024-04-23 15:32:01 +02:00
mo8it
ad8e544483 Move quizzes 2024-04-22 01:07:36 +02:00
mo8it
86684b7fc9 Document dev commands 2024-04-22 00:45:16 +02:00
mo8it
4ce2714da1 Add --no-git 2024-04-22 00:38:34 +02:00
mo8it
e93a99e19e Third-party exercises should be in a separate Git repo 2024-04-22 00:34:55 +02:00
mo8it
61a84a2c11 dev init -> dev new PATH 2024-04-21 23:43:49 +02:00
mo8it
30040d7778 Add a disclaimer to the state file 2024-04-21 23:39:44 +02:00
mo8it
e3b9124b85 Add a confirmation prompt to the init subcommand 2024-04-21 23:24:10 +02:00
mo8it
642c3bd37e Fix the generated Cargo.toml after rustlings init 2024-04-21 20:22:01 +02:00
mo8it
49e4a1fab0 Catch the usage of the old method 2024-04-21 19:34:55 +02:00
mo8it
04d36996dd Update deps 2024-04-21 19:27:00 +02:00
mo8it
f1a60780b9 Rename constant 2024-04-21 19:26:19 +02:00
mo8it
d83c91edc6 Ignore all lock files but the one in root 2024-04-21 18:20:15 +02:00
mo8it
ea504e6bf1 Update deps 2024-04-19 12:41:13 +02:00
mo8it
a2be6754bf Make the exercise name option for the hint subcommand 2024-04-18 17:17:39 +02:00
mo8it
daa090981a Update README 2024-04-18 17:17:21 +02:00
mo8it
aaf183142e Bring back the thanks to contributors ❤️ 2024-04-18 16:17:33 +02:00
Mo
7525ecd8c1 Merge pull request #1952 from rust-lang/remove-all-contributors
Remove all contributors
2024-04-18 13:12:08 +02:00
mo8it
09d8bc83ff Remove README reference 2024-04-18 13:08:02 +02:00
mo8it
cc35a8431f Remove "All-Contributors" 2024-04-18 13:07:07 +02:00
Mo
819dea2500 Merge pull request #1949 from rust-lang/third-party-exercises
Support for third-party exercises
2024-04-18 13:02:35 +02:00
mo8it
01e6732e4d Improve resetting 2024-04-18 12:41:17 +02:00
mo8it
f04089b8bc Only take a reference 2024-04-18 11:40:54 +02:00
mo8it
2566f9aaf6 Place mods under all imports 2024-04-18 11:31:08 +02:00
mo8it
1eac00e89a Disable init command during development 2024-04-18 11:28:28 +02:00
mo8it
2e9b9a9f13 Move constant 2024-04-18 11:21:39 +02:00
mo8it
9f5be60b40 Use git stash to reset third-party exercises 2024-04-18 11:20:51 +02:00
mo8it
d64836f317 Avoid an unneeded syscall 2024-04-18 01:49:32 +02:00
mo8it
634e17a5ab Fix tests 2024-04-17 23:37:31 +02:00
mo8it
2f810a4da6 Clean up and unify exercises 2024-04-17 23:34:27 +02:00
mo8it
cb9f1ac9ce Require a main function in all exercises 2024-04-17 22:46:21 +02:00
mo8it
d83cc69afe Trim before checking if the hint is empty 2024-04-17 19:16:48 +02:00
mo8it
d6bb27ec20 Check for empty field values 2024-04-17 19:12:10 +02:00
mo8it
d42a6e7415 Print the path of the missing file 2024-04-17 18:59:40 +02:00
mo8it
b9167e9299 Remove redundant checks 2024-04-17 18:19:28 +02:00
mo8it
28ec0f864a Check the info file 2024-04-17 18:19:08 +02:00
mo8it
7005d8a400 Fix typo 2024-04-17 16:11:44 +02:00
mo8it
7f433ae28f Check the format version in dev check 2024-04-17 16:09:25 +02:00
mo8it
a2506f154b Update serde 2024-04-17 15:56:24 +02:00
mo8it
501b973c25 Add "dev update" 2024-04-17 15:55:50 +02:00
Hamir Mahal
4eec81a113 ci: add clippy job to rust.yml workflow 2024-04-17 01:35:53 -07:00
Hamir Mahal
9a13bccd63 chore: changes from formatting on save 2024-04-17 01:35:29 -07:00
mo8it
30636e7cf3 Use colors inside the test 2024-04-16 21:46:07 +02:00
liv
67a15ef27f fix: remove bad hint in functions4
Technically it's correct, but playing around with this will very quickly
throw you into having to handle `Option`s and futzing around with
`try_into`. Not really something we want to throw upon the user here.

Closes #1948.
2024-04-16 15:23:08 +02:00
mo8it
d322bcfcec Add description 2024-04-16 04:04:45 +02:00
mo8it
0ac5aa7af2 Fix typo 2024-04-16 04:00:42 +02:00
mo8it
f9be652b3b Ready to publish 2024-04-16 03:56:08 +02:00
mo8it
932f6b53a9 Add myself to the list of authors :) 2024-04-16 03:47:09 +02:00
mo8it
4d9eb35ad7 Prepare for publishing the first alpha version 2024-04-16 03:46:04 +02:00
mo8it
86d716cf8a Add comment about keeping dependencies 2024-04-16 03:43:34 +02:00
mo8it
87db9129bc Add the mode field 2024-04-16 03:37:58 +02:00
mo8it
6566c5904f Tell about updating Cargo.toml 2024-04-16 03:35:23 +02:00
mo8it
aa813fbce1 Update Cargo.toml on dev check 2024-04-16 03:30:28 +02:00
mo8it
d1ebbaa6f6 Add format_version to test info.toml files 2024-04-16 03:18:22 +02:00
mo8it
c07cf5bffe Fix typo 2024-04-16 03:18:06 +02:00
mo8it
df448c069c Fix running dev commands 2024-04-16 03:15:14 +02:00
mo8it
25e7696565 Done dev init 2024-04-16 03:08:45 +02:00
mo8it
92777c0a44 Add the format version 2024-04-16 01:22:54 +02:00
mo8it
7ebc260924 Scetch the dev subcommand 2024-04-15 23:54:57 +02:00
mo8it
f5eaa578b9 Update deps 2024-04-15 23:35:30 +02:00
mo8it
6f04570dd0 Revert "Implement third-party exercises trust handling"
This reverts commit 15ca847c37.
See https://rust-lang.zulipchat.com/#narrow/stream/334454-rustlings/topic/Proposal.3A.20Third-party.20exercises/near/433183449
2024-04-15 03:36:12 +02:00
mo8it
15ca847c37 Implement third-party exercises trust handling 2024-04-15 02:11:27 +02:00
mo8it
c613b70363 Print the trimmed final message 2024-04-14 17:28:01 +02:00
Mo
dc02c38a94 Merge pull request #1942 from rust-lang/tui
TUI
2024-04-14 17:13:32 +02:00
mo8it
7526c6b1f9 Update POST_INIT_MSG 2024-04-14 17:11:27 +02:00
mo8it
1cbabc3d28 Add the manual-run option 2024-04-14 17:10:53 +02:00
mo8it
bd10b154fe Clear the terminal after showing the welcome message 2024-04-14 16:07:17 +02:00
mo8it
070a780d7f Trim the final message 2024-04-14 16:04:05 +02:00
mo8it
8aef915ee7 Show the welcome message 2024-04-14 16:03:49 +02:00
mo8it
3da860927d Use push instead of extend_from_slice on chars 2024-04-14 14:53:32 +02:00
mo8it
1c90575b9f Update deps 2024-04-14 05:13:50 +02:00
mo8it
9dcc4b7df5 Simplify the state file 2024-04-14 05:13:27 +02:00
mo8it
9831cbb139 Fix tests 2024-04-14 03:13:33 +02:00
mo8it
bee62c89de Add terminal links 2024-04-14 02:41:19 +02:00
mo8it
5c0073a948 Tolerate changes in the state file 2024-04-14 01:15:43 +02:00
mo8it
2a26dfcb00 Remove unused ContextLine 2024-04-13 15:30:35 +02:00
mo8it
24539666af Show the final message 2024-04-12 20:06:56 +02:00
mo8it
757723a7e8 Add missing newline 2024-04-12 19:30:36 +02:00
mo8it
ff4c752984 Print FAILED 2024-04-12 19:30:29 +02:00
mo8it
06d1089714 Set pending on fail in run mode 2024-04-12 19:24:26 +02:00
mo8it
6e827da570 It doesn't take minutes :P 2024-04-12 19:18:16 +02:00
mo8it
279ebdc153 Remove the modifier filter in the list mode 2024-04-12 19:16:52 +02:00
mo8it
9b0eeb815a Fix Display for Exercise 2024-04-12 19:07:17 +02:00
mo8it
44824718b2 Remove unused import 2024-04-12 18:58:01 +02:00
mo8it
8bd03093eb Add newline at the end of the generated .gitignore 2024-04-12 18:57:39 +02:00
mo8it
d5a6dee1b3 Handle the case when all exercises are done 2024-04-12 18:57:04 +02:00
mo8it
a534de0312 Implement going to the next exercise 2024-04-12 15:27:29 +02:00
mo8it
98c5088a39 Update deps 2024-04-12 14:52:50 +02:00
mo8it
6807e63c5f Show done message 2024-04-12 02:45:54 +02:00
mo8it
2a95a3e966 Deal with long strings 2024-04-12 01:24:01 +02:00
mo8it
1e3745ccdf Update winnow 2024-04-12 00:58:26 +02:00
mo8it
d8160f9113 Remove outdated installation methods 2024-04-12 00:56:40 +02:00
mo8it
6494a8c50b Remove the watch subcommand 2024-04-11 16:54:27 +02:00
mo8it
864cfa725b Remove outdated tests 2024-04-11 15:10:15 +02:00
mo8it
e79bc727f0 Don't listen on keys with modifiers 2024-04-11 15:08:46 +02:00
mo8it
2e1a87d7d3 Take care of filters when resolving the selected exercise 2024-04-11 14:58:56 +02:00
mo8it
f53a0e8700 Panic if there are no exercises 2024-04-11 14:39:19 +02:00
mo8it
470dc65956 Fix selected when there are no rows 2024-04-11 14:35:30 +02:00
mo8it
686143100f Update intro1 2024-04-11 02:55:58 +02:00
mo8it
c3933904f6 Update deps 2024-04-11 02:51:50 +02:00
mo8it
65849629f5 Remove glob 2024-04-11 02:51:23 +02:00
mo8it
fa1f239a70 Remove "I AM NOT DONE" and the verify mode and add AppState 2024-04-11 02:51:02 +02:00
mo8it
4bb6bda9f6 Separate event handlers 2024-04-10 16:02:12 +02:00
mo8it
256c4013b7 Keep hint displayed after resizing the terminal 2024-04-10 15:56:38 +02:00
mo8it
27e9520665 Add deny_unknown_fields 2024-04-10 14:40:49 +02:00
mo8it
b3642b0219 Remove todo 2024-04-10 14:35:42 +02:00
mo8it
193e0a03b2 Use light blue for the message 2024-04-10 14:31:08 +02:00
mo8it
a59acf8835 Show the current exercise path 2024-04-10 14:29:31 +02:00
mo8it
62e92476e6 Fix typo 2024-04-10 04:10:05 +02:00
mo8it
6255efe8b2 Show the invalid command to avoid confusion after resizing the terminal 2024-04-10 04:08:40 +02:00
mo8it
a46d66134b Fix shift of first output line 2024-04-10 03:56:41 +02:00
mo8it
f034899c7f Capture terminal resize events 2024-04-10 03:54:48 +02:00
mo8it
c9a5fa6097 Accept repeat keyboard events 2024-04-10 02:19:14 +02:00
mo8it
d1a965f019 Make the list mode part of the watch mode 2024-04-10 02:12:50 +02:00
mo8it
533a009257 Show the progress in the progress bar, not the current exercise index 2024-04-10 00:51:41 +02:00
mo8it
4a80bf6441 Colorize the progress bar 2024-04-10 00:42:32 +02:00
mo8it
c8d217ad50 Fix showing stdout and stderr 2024-04-09 22:20:12 +02:00
mo8it
a8ddc07a9a Add "exercises" to the end of the progress bar 2024-04-09 22:15:41 +02:00
mo8it
af85f2036c Print a newline before the progress bar 2024-04-09 22:06:55 +02:00
mo8it
ff6c15f9c1 Don't try to join the input thread 2024-04-09 22:04:10 +02:00
mo8it
4110ae21af Handle notify errors 2024-04-09 21:46:55 +02:00
mo8it
b15e0a279b Use shrink to fit before leaking the vector 2024-04-09 21:23:02 +02:00
mo8it
787bec9875 Use exercises as leaked 2024-04-09 21:16:27 +02:00
mo8it
f0ce2c1afa Improve event handling in the watch mode 2024-04-09 21:07:53 +02:00
mo8it
850c1d0234 Add progress bar to list 2024-04-09 19:37:39 +02:00
mo8it
ee7d976283 Use a green color on successful run 2024-04-09 17:15:12 +02:00
liv
258ff6f462 Merge pull request #1946 from rust-lang/all-contributors/add-Selflocking
docs: add Selflocking as a contributor for content
2024-04-08 22:49:11 +02:00
allcontributors[bot]
95a3fe17fa docs: update .all-contributorsrc [skip ci] 2024-04-08 20:49:03 +00:00
allcontributors[bot]
501861e435 docs: update AUTHORS.md [skip ci] 2024-04-08 20:49:02 +00:00
liv
f3890cbae6 Merge pull request #1944 from Selflocking/patch-1
docs: add more info in threads
2024-04-08 22:48:43 +02:00
YunShu
f714534393 docs: add more info in threads
info.toml: 

```toml
[[exercises]]
name = "threads3"
path = "exercises/threads/threads3.rs"
mode = "test"
hint = """
An alternate way to handle concurrency between threads is to use
a mpsc (multiple producer, single consumer) channel to communicate.
With both a sending end and a receiving end, it's possible to
send values in one thread and receive them in another.
Multiple producers are possible by using clone() to create a duplicate
of the original sending end.
See https://doc.rust-lang.org/book/ch16-02-message-passing.html for more info.
"""
```

threads3'hint contains this link, so it should be placed in Further Information
2024-04-08 22:07:26 +08:00
mo8it
d0fcd8ae8a Use a color for the message 2024-04-08 03:21:13 +02:00
mo8it
7c46e7ac69 Simplify building rows.
No more lifetimes championship :(
2024-04-08 03:16:38 +02:00
mo8it
1db5de9653 Fix selection after applying filters 2024-04-08 03:08:05 +02:00
mo8it
b5fc06bd56 Show more exercises before the selected one 2024-04-08 02:46:35 +02:00
mo8it
7c4d33654f Implement done/pending filters 2024-04-08 02:41:48 +02:00
mo8it
05729b27a0 Set a list offset 2024-04-08 01:49:38 +02:00
mo8it
0bf3f7e01f Lowercase "filter" in help footer 2024-04-08 01:34:41 +02:00
mo8it
bd5503a0d3 Show message on reset 2024-04-08 01:33:11 +02:00
mo8it
25e855a009 Merge imports 2024-04-08 00:36:26 +02:00
mo8it
c2501ae733 Remove list tests because of the TUI 2024-04-08 00:36:10 +02:00
mo8it
3a4f2bebb4 Remove test because of defaulting to watch mode 2024-04-08 00:35:51 +02:00
mo8it
394ca402a8 Remove the info_toml_content field 2024-04-07 23:57:54 +02:00
mo8it
db25cc9157 Ignore .rustlings-state.json 2024-04-07 23:54:32 +02:00
mo8it
93f8d1610d Some renamings 2024-04-07 23:37:40 +02:00
mo8it
99c9ab467b Implement resetting 2024-04-07 22:43:59 +02:00
mo8it
db43efe3ec Update .gitignore 2024-04-07 22:40:50 +02:00
mo8it
9a4ee47c52 Separate WatchState 2024-04-07 19:29:16 +02:00
mo8it
0a674a158d Separate UiState 2024-04-07 19:05:29 +02:00
mo8it
3bd26c7a24 State -> StateFile 2024-04-07 19:01:08 +02:00
mo8it
8c31d38fa1 Better variable name 2024-04-07 17:57:20 +02:00
mo8it
d988054ad8 Add UiState 2024-04-07 16:33:00 +02:00
mo8it
2db86833a9 Fix lifetimes 2024-04-07 13:12:40 +02:00
mo8it
b0a4750624 Implement "continue at" 2024-04-07 04:59:22 +02:00
mo8it
4f69285375 Shorten the help footer 2024-04-07 04:39:03 +02:00
mo8it
e640b4a1ff Add "Next" column 2024-04-07 04:36:27 +02:00
mo8it
7f5a18fa34 Show help message 2024-04-07 04:19:50 +02:00
mo8it
c4897139ae Prevent unneeded redraws 2024-04-07 03:41:23 +02:00
mo8it
372290a796 Done navigation 2024-04-07 03:38:18 +02:00
mo8it
729385362c Update deps 2024-04-07 03:03:59 +02:00
mo8it
f6db88aca8 Started with list 2024-04-07 03:03:37 +02:00
mo8it
0819bbe21f Can't use Ratatui for the watch mode :( 2024-04-07 01:17:53 +02:00
mo8it
18342b3aa3 Verify starting with some index 2024-04-07 01:16:56 +02:00
mo8it
c2daad8340 Return an error instead of exiting 2024-04-07 01:15:47 +02:00
mo8it
de9a0ed522 Update state 2024-04-06 01:46:22 +02:00
mo8it
06e7216c83 Elimintate an itermediate variable 2024-04-06 01:46:09 +02:00
mo8it
60155294e9 Rename packages 2024-04-06 01:45:54 +02:00
mo8it
3f2d41de9e Start with the state 2024-04-05 03:05:07 +02:00
mo8it
b0f19fd862 Start with the TUI 2024-04-05 03:04:53 +02:00
mo8it
0bf51c6a0d Ignore .ignore 2024-04-05 00:59:21 +02:00
mo8it
1d2c2cffd2 Remove .gitattributes 2024-04-05 00:59:13 +02:00
mo8it
157fe016e5 Remove ui.rs 2024-04-05 00:49:22 +02:00
mo8it
5a233398eb Fix tests 2024-04-05 00:44:43 +02:00
mo8it
919ba88413 Use the pretty format when testing even with -q 2024-04-05 00:43:36 +02:00
mo8it
445441ce25 Make gen-dev-cargo-toml a separate package
so that `cargo install` only installs `rustlings`
2024-04-04 23:16:57 +02:00
mo8it
34375b2ebf Clean up as a preparation for the TUI 2024-04-04 21:06:11 +02:00
mo8it
9ea744a710 Remove deps not needed in the TUI 2024-04-04 20:27:30 +02:00
mo8it
2b6f9fb6a7 Add Ratatui 2024-04-04 20:21:55 +02:00
Mo
8c8f30d8ce Merge pull request #1931 from mo8it/standalone-binary
Standalone binary
2024-04-04 15:48:07 +02:00
mo8it
b6c434c445 Remove optional version field 2024-04-04 15:45:53 +02:00
mo8it
569a68eb73 Minify generated Cargo.toml 2024-04-04 15:44:48 +02:00
mo8it
1885ece2dc Merge branch 'main' 2024-04-04 15:31:59 +02:00
Mo
459c52137a Merge pull request #1765 from junderw/junderw/fix-gitignore
Fix gitignore for clippy exercise
2024-04-01 19:33:28 +02:00
mo8it
190945352a Add comments about dev/Cargo.toml 2024-04-01 18:52:43 +02:00
mo8it
def8d2c569 Add VerifyState 2024-04-01 18:38:01 +02:00
mo8it
fdd7de00bd Improvements to verify 2024-04-01 18:21:56 +02:00
mo8it
2f30eac27f Remove unneeded .iter() 2024-04-01 17:36:42 +02:00
mo8it
14f3585816 Make cargo run work 2024-04-01 02:11:52 +02:00
mo8it
8ad18de54c Use var_os to avoid conversion to String 2024-03-31 20:11:08 +02:00
mo8it
7560aec66b Inline reset 2024-03-31 20:08:23 +02:00
mo8it
fb32d0b86f Remove redundant test 2024-03-31 18:59:07 +02:00
mo8it
7090fffeae Fix tests 2024-03-31 18:59:01 +02:00
mo8it
c1de4d46aa Some improvements to error handling 2024-03-31 18:25:54 +02:00
mo8it
82b563f165 Use Cargo instead of rustc 2024-03-31 16:55:33 +02:00
liv
9cb25e16f9 Merge pull request #1928 from mo8it/v1-readme
Remove the reference to v1
2024-03-31 16:25:00 +02:00
liv
ca07abf3dc Merge pull request #1929 from mo8it/threads2
threads2: simplify the exercise
2024-03-31 16:22:54 +02:00
mo8it
b711dd692a Add .gitignore 2024-03-31 02:04:41 +01:00
mo8it
1e1f031713 Fix path comparison 2024-03-31 00:49:19 +01:00
mo8it
b5e17c965d Add an error message when a file is not embedded 2024-03-30 21:15:11 +01:00
mo8it
23f0fae1c8 Show a success message after resetting 2024-03-30 21:13:28 +01:00
mo8it
79ca821e26 Fix tests 2024-03-30 20:48:30 +01:00
mo8it
fe7d775818 Remove the installation scripts 2024-03-30 18:52:49 +01:00
Mo
4e59857228 Merge pull request #1934 from rust-lang/all-contributors/add-loshz
docs: add loshz as a contributor for code
2024-03-29 20:04:20 +01:00
allcontributors[bot]
c2b7f45806 docs: update .all-contributorsrc [skip ci] 2024-03-29 19:03:58 +00:00
allcontributors[bot]
c6597d0010 docs: update AUTHORS.md [skip ci] 2024-03-29 19:03:57 +00:00
Mo
1a4f55e0e6 Merge pull request #1933 from loshz/main
options1: slightly update grammar
2024-03-29 20:03:23 +01:00
Dan
30273a6ee5 Merge branch 'main' into main 2024-03-29 18:29:38 +00:00
mo8it
8e3cc9d70c Improve printed information 2024-03-29 01:52:05 +01:00
mo8it
2b01811fe9 Fix typo 2024-03-29 01:51:22 +01:00
mo8it
a561a0f7f0 Avoid reinitialization by mistake 2024-03-29 01:51:08 +01:00
mo8it
36a8e3ac0e Replace rust-project.json with Cargo.toml 2024-03-29 01:29:41 +01:00
mo8it
0f18d599e9 Add panic = "abort" 2024-03-29 01:25:32 +01:00
mo8it
3959570221 Bump version to v6 2024-03-29 01:25:21 +01:00
mo8it
3ff9b0cd2a POC done 2024-03-28 22:11:16 +01:00
mo8it
5b4103bbac Remove unneeded ./ from relative paths 2024-03-28 21:10:31 +01:00
mo8it
d5ed749e9f Add embedded.rs 2024-03-28 21:06:36 +01:00
mo8it
39bdd086a7 Use concat explicitly from std 2024-03-28 18:18:20 +01:00
mo8it
dd025391f2 Make everything static 2024-03-28 17:52:51 +01:00
mo8it
e5efc68a91 Done macro 2024-03-28 17:34:48 +01:00
Daniel Somerfield
62afbb034f Move test array to be in test module as vec 2024-03-27 20:37:19 -07:00
Mo
9691c3cb55 Merge pull request #1930 from rust-lang/all-contributors/add-jbouganim-parallel
docs: add jbouganim-parallel as a contributor for code
2024-03-28 02:10:25 +01:00
allcontributors[bot]
24cb4a3bc9 docs: update .all-contributorsrc [skip ci] 2024-03-28 01:10:06 +00:00
allcontributors[bot]
0888952cb9 docs: update AUTHORS.md [skip ci] 2024-03-28 01:10:05 +00:00
Mo
b8437bea73 Merge pull request #1773 from jbouganim-parallel/patch-1
fix broken link in windows installation instructions
2024-03-28 02:06:10 +01:00
mo8it
842e341895 threads2: simplify threads2 2024-03-27 21:24:36 +01:00
mo8it
3df59379de Remove the reference to v1 2024-03-27 20:28:31 +01:00
Mo
58b03af587 Merge pull request #1927 from mo8it/docs
doc: Update outdated info
2024-03-27 18:14:56 +01:00
Mo
5652862b23 Merge pull request #1926 from rust-lang/all-contributors/add-NicolasRoelandt
docs: add NicolasRoelandt as a contributor for doc
2024-03-27 17:29:18 +01:00
allcontributors[bot]
9895c1f9bd docs: update .all-contributorsrc [skip ci] 2024-03-27 16:29:04 +00:00
allcontributors[bot]
4e7f9ca1b3 docs: update AUTHORS.md [skip ci] 2024-03-27 16:29:03 +00:00
Mo
c7cf3720bd Merge pull request #1799 from NicolasRoelandt/patch-1
Remove confusing aside in 23_conversions/from_str.rs
2024-03-27 17:28:35 +01:00
Mo
d2996b4cc6 Merge pull request #1925 from rust-lang/all-contributors/add-wznmickey
docs: add wznmickey as a contributor for doc
2024-03-27 17:24:16 +01:00
Mo
19675008c8 Merge pull request #1923 from wznmickey/main
chore: update the chapter of macros
2024-03-27 17:23:58 +01:00
allcontributors[bot]
4937cb5b7c docs: update .all-contributorsrc [skip ci] 2024-03-27 16:23:46 +00:00
allcontributors[bot]
7b20ca9d04 docs: update AUTHORS.md [skip ci] 2024-03-27 16:23:45 +00:00
Mo
217c6d42fb Merge pull request #1924 from rust-lang/all-contributors/add-paul-leydier
docs: add paul-leydier as a contributor for doc
2024-03-27 17:21:48 +01:00
allcontributors[bot]
fb8dd57d1f docs: update .all-contributorsrc [skip ci] 2024-03-27 16:21:14 +00:00
allcontributors[bot]
669adbeb60 docs: update AUTHORS.md [skip ci] 2024-03-27 16:21:13 +00:00
wznmickey
dd72429af4 Merge remote-tracking branch 'origin/main' 2024-03-28 00:11:19 +08:00
mo8it
971e7f94dc Update the link to conventionalcommits.org 2024-03-27 17:08:38 +01:00
wznmickey
92183a74c4 chore: update the chapter of macros 2024-03-28 00:06:16 +08:00
mo8it
e7bb832bf3 Remove outdated info about the command line parser 2024-03-27 17:03:53 +01:00
Mo
34d04139cd Merge pull request #1805 from paul-leydier/chapters-table
docs: sort exercise to book chapter mapping by exercise
2024-03-27 16:59:52 +01:00
Mo
c4d434a2b4 Merge pull request #1922 from mo8it/deps
Update deps
2024-03-27 15:21:13 +01:00
mo8it
76764633b4 Update deps 2024-03-27 15:16:42 +01:00
Mo
8e87c35c88 Merge pull request #1907 from honeywest/feat/ui-format
feat: ui format
2024-03-27 15:08:28 +01:00
Mo
45a1a74559 Merge pull request #1917 from mo8it/project
Rewrite `project.rs`
2024-03-27 15:07:30 +01:00
mo8it
b24f256f2a Merge branch 'main' into project 2024-03-27 15:06:58 +01:00
Mo
864d046058 Merge pull request #1912 from mo8it/performance
Optimizations 1
2024-03-27 15:02:25 +01:00
mo8it
a27741b131 Merge branch 'main' into performance 2024-03-27 15:00:57 +01:00
Mo
b13bafa13e Merge pull request #1911 from mo8it/watch
Improvements to watch mode
2024-03-27 14:42:17 +01:00
mo8it
f995b4c041 Merge branch 'main' into watch 2024-03-27 14:41:26 +01:00
Mo
b8a5886db4 Merge pull request #1914 from mo8it/toml
Reading the `info.toml` file
2024-03-27 14:30:59 +01:00
mo8it
b9d2756ce8 Merge branch 'main' into toml 2024-03-27 14:30:10 +01:00
Mo
07dec76f7c Merge pull request #1916 from mo8it/command
Pipe the output of command to null instead of capturing and ignoring it
2024-03-27 14:24:16 +01:00
Mo
deeefcf16c Merge pull request #1913 from mo8it/which
Use `which` instead of running `rustc --version`
2024-03-27 14:21:11 +01:00
mo8it
8e0f7e56f7 Merge branch 'main' into which 2024-03-27 14:18:20 +01:00
Mo
87ca05b4bb Merge pull request #1915 from mo8it/home
Remove the home dependency since it is not used
2024-03-27 12:58:30 +01:00
Mo
d69a8a7045 Merge pull request #1921 from mo8it/style
Style
2024-03-27 12:57:26 +01:00
mo8it
87001a68c0 The string doesn't have to be a raw string 2024-03-26 17:50:29 +01:00
mo8it
a610fc1bc2 Remove unneeded closure 2024-03-26 17:50:10 +01:00
mo8it
e89028581c Use == instead of eq 2024-03-26 17:49:55 +01:00
mo8it
980ffa2a2b Use == on simple enums 2024-03-26 17:49:48 +01:00
mo8it
1f2029ae55 Add missing semicolon 2024-03-26 17:49:25 +01:00
mo8it
ed0fcf8e3d Formatting 2024-03-26 17:49:05 +01:00
mo8it
f36efae25d Only use arg instead of args AND arg 2024-03-26 17:48:06 +01:00
mo8it
853d0593d0 Derive Eq when PartialEq is derived 2024-03-26 17:47:33 +01:00
mo8it
078f6ffc1c Add comments 2024-03-26 02:26:26 +01:00
mo8it
7a6f71f090 Fix context of previous lines and improve readability 2024-03-26 02:14:25 +01:00
mo8it
a158c77d81 Add comment 2024-03-25 23:21:14 +01:00
mo8it
8ddbf9635d Add write_project_json 2024-03-25 23:01:56 +01:00
mo8it
8d3ec24c11 Optimize the serialized data types 2024-03-25 22:41:14 +01:00
mo8it
a5ba44bd6a RustAnalyzerProject is not deserialized 2024-03-25 22:30:16 +01:00
mo8it
f5135ae4df Remove unneeded check if crates is empty 2024-03-25 22:29:33 +01:00
mo8it
87e55ccffd Use the parsed exercises instead of glob 2024-03-25 22:20:00 +01:00
mo8it
d911586788 Pipe the output to null instead of capturing and ignoring it 2024-03-25 17:21:54 +01:00
mo8it
b932ed1f67 Don't capture stderr 2024-03-25 17:14:41 +01:00
mo8it
dca3ea355e Remove the home dependency since it is not used 2024-03-25 14:10:51 +01:00
mo8it
d095a307dd Avoid allocations on every call to Path::join 2024-03-25 03:59:21 +01:00
mo8it
51712cc19f Merge get_sysroot_src into the constructor 2024-03-25 03:49:10 +01:00
mo8it
efa9f57048 Add anyhow 2024-03-25 03:46:56 +01:00
mo8it
b3aef377be Use a custom capacity for the JSON buffer 2024-03-25 03:33:14 +01:00
mo8it
e4520602f5 Use the NotFound variant of the IO error 2024-03-25 02:41:45 +01:00
mo8it
83cd91ccca Replace toml with toml_edit 2024-03-25 02:35:51 +01:00
mo8it
51b4c240ed Use which instead of running rustc --version 2024-03-25 00:30:01 +01:00
mo8it
bdf826a026 Make "I AM NOT DONE" caseless 2024-03-24 22:22:55 +01:00
mo8it
c0c112985b Replace regex with winnow 2024-03-24 19:18:19 +01:00
mo8it
f205ee3d4c Call looks_done only once 2024-03-24 18:50:46 +01:00
mo8it
e1375ef431 Use to_string_lossy 2024-03-24 18:47:27 +01:00
mo8it
0aeaccc3a5 Optimize state 2024-03-24 18:34:46 +01:00
mo8it
01b7d6334c Remove unneeded to_string call 2024-03-23 22:08:25 +01:00
mo8it
a325df55d1 Cache filters 2024-03-23 21:56:40 +01:00
mo8it
27fa7c3e4a Move the const string to the bottom like others 2024-03-23 19:00:15 +01:00
mo8it
0d93266462 Initialize the input buffer with some capacity 2024-03-23 18:56:30 +01:00
mo8it
3dce7e5696 Improvements to watch mode 2024-03-23 18:51:25 +01:00
honeywest
e276c12192 feat: ui format 2024-03-21 15:18:50 +08:00
Dan Bond
eb952a480d verify: fix success message spacing
Signed-off-by: Dan Bond <danbond@protonmail.com>
2024-03-18 16:47:54 -07:00
Dan Bond
f2833c5279 options1: Update wording & fix grammar
Signed-off-by: Dan Bond <danbond@protonmail.com>
2024-03-18 16:47:15 -07:00
liv
9c6f56b836 Merge pull request #1903 from mo8it/threads3
Remove unneeded Arc
2024-03-18 18:43:30 +01:00
liv
f3fdb07507 Merge pull request #1904 from mo8it/lsp
Fix the sysroot path when it contains whitespaces
2024-03-18 18:43:07 +01:00
mo8it
1fe32a7ff2 Fix the sysroot path when it contains whitespaces 2024-03-18 01:44:25 +01:00
mo8it
71700c506c Remove unneeded Arc 2024-03-18 01:12:37 +01:00
liv
18d0f3411f Merge pull request #1902 from rust-lang/all-contributors/add-kazu728
docs: add kazu728 as a contributor for code
2024-03-17 13:19:44 +01:00
allcontributors[bot]
e1fa6cf30b docs: update .all-contributorsrc [skip ci] 2024-03-17 12:19:37 +00:00
allcontributors[bot]
a07172a069 docs: update AUTHORS.md [skip ci] 2024-03-17 12:19:36 +00:00
liv
32d2c38aa2 Merge pull request #1899 from kazu728/fix-verify-stdout-buffering
show stdout of the final line
2024-03-17 13:19:20 +01:00
Kazuki Matsuo
80388c042b fix(verify): show stdout of the last line 2024-03-16 13:56:34 +09:00
liv
c723bcd594 Merge pull request #1897 from rust-lang/all-contributors/add-guizo792
docs: add guizo792 as a contributor for content
2024-03-15 20:57:03 +01:00
allcontributors[bot]
d4233f8166 docs: update .all-contributorsrc [skip ci] 2024-03-15 19:56:55 +00:00
allcontributors[bot]
60f44cc509 docs: update AUTHORS.md [skip ci] 2024-03-15 19:56:54 +00:00
liv
14ca4e8197 Merge pull request #1866 from guizo792/guizo792
docs: Added comment for handling equal numbers in if/if1.rs `bigger` function
2024-03-15 20:56:38 +01:00
guizo792
ae69f423cd Update exercises/03_if/if1.rs
Co-authored-by: liv <shadows@with.al>
2024-03-15 17:36:28 +00:00
liv
d8ecf4bc2d fix: clean up "return" wording in iterators4 2024-03-15 15:01:39 +01:00
liv
3eabf2aafc Merge pull request #1878 from mo8it/deps
Update dependencies
2024-03-15 14:56:56 +01:00
liv
02acf83e99 Merge pull request #1895 from rust-lang/all-contributors/add-0Ahmed-0
docs: add 0Ahmed-0 as a contributor for content
2024-03-15 14:40:49 +01:00
allcontributors[bot]
d53ae18918 docs: update .all-contributorsrc [skip ci] 2024-03-15 13:40:37 +00:00
allcontributors[bot]
0d37f9011c docs: update AUTHORS.md [skip ci] 2024-03-15 13:40:36 +00:00
liv
244ec8fbf2 Merge pull request #1797 from 0Ahmed-0/typos
chore: fix a minor typo
2024-03-15 14:40:19 +01:00
liv
57984ae9f3 Merge pull request #1894 from rust-lang/all-contributors/add-parnavh
docs: add parnavh as a contributor for content
2024-03-15 14:39:28 +01:00
allcontributors[bot]
1e69e67997 docs: update .all-contributorsrc [skip ci] 2024-03-15 13:39:19 +00:00
allcontributors[bot]
1c3b129a53 docs: update AUTHORS.md [skip ci] 2024-03-15 13:39:18 +00:00
liv
a449d39bdc Merge pull request #1785 from parnavh/main
Cleaned Up Unused Mutability
2024-03-15 14:38:58 +01:00
liv
34df327d2a Merge pull request #1893 from rust-lang/all-contributors/add-LeverImmy
docs: add LeverImmy as a contributor for content
2024-03-15 14:37:25 +01:00
allcontributors[bot]
b7b74910d8 docs: update .all-contributorsrc [skip ci] 2024-03-15 13:37:02 +00:00
allcontributors[bot]
b7add6a1a8 docs: update AUTHORS.md [skip ci] 2024-03-15 13:37:01 +00:00
liv
ce5df2d84b Merge pull request #1848 from LeverImmy/main
chore: fixed minor typo
2024-03-15 14:36:47 +01:00
liv
76acf613c5 Merge branch 'main' into main 2024-03-15 14:36:23 +01:00
liv
2966a29449 Merge pull request #1892 from rust-lang/all-contributors/add-luvchurchill
docs: add luvchurchill as a contributor for code
2024-03-15 14:35:29 +01:00
allcontributors[bot]
c01ddbc747 docs: update .all-contributorsrc [skip ci] 2024-03-15 13:35:17 +00:00
allcontributors[bot]
f8f627b6f7 docs: update AUTHORS.md [skip ci] 2024-03-15 13:35:16 +00:00
liv
c3f1183815 Merge pull request #1850 from luvchurchill/main
Fix(Installation) Added .git to end of Repo's https URL
2024-03-15 14:34:48 +01:00
liv
f08fd02f33 Merge pull request #1891 from rust-lang/all-contributors/add-evanmiller2112
docs: add evanmiller2112 as a contributor for content
2024-03-15 14:32:52 +01:00
allcontributors[bot]
8d1258f26a docs: update .all-contributorsrc [skip ci] 2024-03-15 13:32:31 +00:00
allcontributors[bot]
4304b3981e docs: update AUTHORS.md [skip ci] 2024-03-15 13:32:30 +00:00
liv
31e7920cee Merge pull request #1869 from evanmiller2112/main
Clarify language in hashmap3.rs (sum vs per match)
2024-03-15 14:32:12 +01:00
liv
6fb45305f8 Merge pull request #1890 from rust-lang/all-contributors/add-hyphena
docs: add hyphena as a contributor for content
2024-03-15 14:29:00 +01:00
allcontributors[bot]
9cf5a2f83f docs: update .all-contributorsrc [skip ci] 2024-03-15 13:22:14 +00:00
allcontributors[bot]
3d6b5e8102 docs: update AUTHORS.md [skip ci] 2024-03-15 13:22:13 +00:00
liv
8c5d091513 Merge pull request #1875 from hyphena/patch-1
chore: minor typo fix
2024-03-15 14:21:56 +01:00
liv
91df875847 Merge pull request #1889 from rust-lang/all-contributors/add-pavedroad
docs: add pavedroad as a contributor for content
2024-03-15 14:21:36 +01:00
allcontributors[bot]
1ac392a551 docs: update .all-contributorsrc [skip ci] 2024-03-15 13:19:34 +00:00
allcontributors[bot]
3f0dc81a9c docs: update AUTHORS.md [skip ci] 2024-03-15 13:19:33 +00:00
liv
44ef58be43 Merge pull request #1881 from pavedroad/main
chore: fix typo
2024-03-15 14:19:17 +01:00
liv
803e0a4fbb Merge pull request #1888 from rust-lang/all-contributors/add-kylev
docs: add kylev as a contributor for infra
2024-03-15 14:17:26 +01:00
allcontributors[bot]
62b435a309 docs: update .all-contributorsrc [skip ci] 2024-03-15 13:17:18 +00:00
allcontributors[bot]
fe28feba1e docs: update AUTHORS.md [skip ci] 2024-03-15 13:17:17 +00:00
liv
cc27966980 Merge pull request #1877 from kylev/kv_faster_devcon
Simplify and shrink development container
2024-03-15 14:17:00 +01:00
liv
6b0a2ff0d0 Merge pull request #1871 from rust-lang/dependabot/cargo/mio-0.8.11
chore(deps): bump mio from 0.8.9 to 0.8.11
2024-03-15 14:15:04 +01:00
liv
b0c50b3bc7 Merge pull request #1887 from rust-lang/all-contributors/add-JanB1
docs: add JanB1 as a contributor for content
2024-03-15 14:02:17 +01:00
allcontributors[bot]
4c51cb0909 docs: update .all-contributorsrc [skip ci] 2024-03-15 13:02:10 +00:00
allcontributors[bot]
032e3c9f30 docs: update AUTHORS.md [skip ci] 2024-03-15 13:02:09 +00:00
liv
9bae712453 Merge pull request #1856 from JanB1/main
Clarified hint text
2024-03-15 14:01:54 +01:00
liv
b057e09156 Merge pull request #1886 from rust-lang/all-contributors/add-peterneave
docs: add peterneave as a contributor for infra
2024-03-15 13:57:03 +01:00
allcontributors[bot]
0d5c105c15 docs: update .all-contributorsrc [skip ci] 2024-03-15 12:56:53 +00:00
allcontributors[bot]
fe698d9096 docs: update AUTHORS.md [skip ci] 2024-03-15 12:56:52 +00:00
liv
c54ec23b9e Merge pull request #1837 from peterneave/main
fix: Ensure scripts have LF line endings
2024-03-15 13:56:35 +01:00
liv
6f1d309308 Merge pull request #1885 from rust-lang/all-contributors/add-reifenrath-dev
docs: add reifenrath-dev as a contributor for content
2024-03-15 13:53:11 +01:00
allcontributors[bot]
6f88dd437e docs: update .all-contributorsrc [skip ci] 2024-03-15 12:52:54 +00:00
allcontributors[bot]
557bbe2b85 docs: update AUTHORS.md [skip ci] 2024-03-15 12:52:53 +00:00
liv
32c19c2e47 Merge pull request #1832 from reifenrath-dev/main
chore: update from_into.rs task description to fit the code
2024-03-15 13:52:38 +01:00
liv
27d1a31eb6 Merge pull request #1884 from rust-lang/all-contributors/add-AnonimAnonim2245
docs: add AnonimAnonim2245 as a contributor for code
2024-03-15 13:52:01 +01:00
allcontributors[bot]
3c6c29e19e docs: update .all-contributorsrc [skip ci] 2024-03-15 12:51:44 +00:00
allcontributors[bot]
2b97faa1d3 docs: update AUTHORS.md [skip ci] 2024-03-15 12:51:43 +00:00
Luca Plian
17ee0e3c7a optimized the UI code (#1830) 2024-03-15 13:51:24 +01:00
liv
c46a711526 fix: revert from_into test change 2024-03-15 13:48:57 +01:00
Ahmed
098ff228d7 chore: fix a minor typo 2024-03-13 00:39:45 +00:00
pavedroad
f5e9db90cc chore: fix typo
Signed-off-by: pavedroad <qcqs@outlook.com>
2024-03-12 14:35:48 +08:00
mo8it
36db08340d Update dependencies 2024-03-10 23:57:35 +01:00
Kyle VanderBeek
2fb135026c Add back the post-attach watch. 2024-03-09 23:18:31 +00:00
Kyle VanderBeek
77903200a0 Remove duplicate vscode extension list.
It's already in the vendor-specific .vscode files.
2024-03-09 20:20:14 +00:00
Kyle VanderBeek
e424e9f6c7 Add target directory to $PATH
Makes the pre-built command work in the shell right away.
2024-03-09 20:07:51 +00:00
Kyle VanderBeek
11f0fd7fd9 Convert to lightweight dev container; simplify.
Instead of running `rustup` on a multi-gigabyte general-purpose Linux base, use the premade devcontainers/rust:1 which closely tracks the rust toolchain releases. Rip out excess setup steps since devcontainers come with the repo checked out; just compile/update the binary.
2024-03-09 19:45:50 +00:00
luna
547f3ac835 chore: minor typo fix 2024-03-07 18:31:33 -05:00
dependabot[bot]
373676a576 chore(deps): bump mio from 0.8.9 to 0.8.11
Bumps [mio](https://github.com/tokio-rs/mio) from 0.8.9 to 0.8.11.
- [Release notes](https://github.com/tokio-rs/mio/releases)
- [Changelog](https://github.com/tokio-rs/mio/blob/master/CHANGELOG.md)
- [Commits](https://github.com/tokio-rs/mio/compare/v0.8.9...v0.8.11)

---
updated-dependencies:
- dependency-name: mio
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-04 22:02:08 +00:00
Evan Miller
9bda8598e1 Merge pull request #1 from evanmiller2112/evanmiller2112-hashmap3-description
Update hashmaps3.rs description for clarity
2024-03-04 10:39:01 -05:00
Evan Miller
19b5e24d5c Update hashmaps3.rs description for clarity
I struggled with this exercise and didn't understand that it was looking for a summary of goals scored/conceded per team, instead of per match.

My goal here is just to clarify the language, essentially saying "the total number of goals the team scored" to indicate that we are looking for a sum.

Updated the exercise description to clarify this point.

Relates loosely to closed issue https://github.com/rust-lang/rustlings/issues/1361
2024-03-04 10:38:09 -05:00
Guizoul
1da82a0eab docs: Added comment for handling equal numbers in if/if1.rs bigger function 2024-02-28 14:19:05 +01:00
Jan
75ee0e4245 Clarified hint text 2024-02-12 18:13:20 +01:00
luvchurchill
53c40024d8 Added .git to end of Repo's https URL
The install.sh script didn't work for me, after I changed this locally it worked
URL needs to end in .git
2024-02-06 01:54:04 +02:00
LeverImmy
bcb192c707 chore: fixed minor typo 2024-02-04 10:51:06 +08:00
Peter Neave
6072ec16a0 fix: Ensure scripts have LF line endings
Use gitattributes file to ensure script files have LF line endings. This solves a problem for users who wish to use DevContainers on Windows machines and the file has been cloned from the repository with CRLF line endings.
2024-01-24 09:30:49 +11:00
reifenrath-dev
b70ed105db chore: update from_into.rs task description to fit the code 2024-01-19 11:18:54 +01:00
liv
8d0aa11a35 Merge pull request #1826 from rust-lang/all-contributors/add-gerases
docs: add gerases as a contributor for content
2024-01-15 14:52:04 +00:00
allcontributors[bot]
e2674498c6 docs: update .all-contributorsrc [skip ci] 2024-01-15 14:51:48 +00:00
allcontributors[bot]
3200581d4d docs: update AUTHORS.md [skip ci] 2024-01-15 14:51:47 +00:00
liv
6afc4840b4 Merge pull request #1819 from gerases/grammar-fix
Correct for more standard English
2024-01-15 14:51:31 +00:00
Sergei Gerasenko
93aef73eb5 Correct for more standard English 2024-01-09 10:17:03 -06:00
Paul Leydier
5453fad991 docs: sort exercise to book chapter mapping by exercise 2023-12-18 21:16:18 -05:00
NicolasRoelandt
f35f63fa57 Remove confusing aside in 23_conversions/from_str.rs
The advice tell us how to return as String error message. Unless I missed something, we can't even return a String error message here, so this advice is more confusing than anything and should better be removed.
2023-12-08 17:52:21 +00:00
liv
88b583f2bb Merge pull request #1793 from rust-lang/all-contributors/add-bastianpedersen
docs: add bastianpedersen as a contributor for content
2023-11-29 17:39:57 +01:00
allcontributors[bot]
8863855627 docs: update .all-contributorsrc [skip ci] 2023-11-29 16:39:44 +00:00
allcontributors[bot]
5bbdb3d5ba docs: update AUTHORS.md [skip ci] 2023-11-29 16:39:43 +00:00
liv
9f4b5566db Merge pull request #1769 from bastianpedersen/patch-1
docs: reword `clippy1` exercise to be more readable
2023-11-29 17:39:28 +01:00
liv
f97f4bc4f1 Merge pull request #1792 from rust-lang/all-contributors/add-neuschaefer
docs: add neuschaefer as a contributor for code
2023-11-29 17:34:16 +01:00
allcontributors[bot]
3e7f1e3ff2 docs: update .all-contributorsrc [skip ci] 2023-11-29 16:33:59 +00:00
allcontributors[bot]
4b80097817 docs: update AUTHORS.md [skip ci] 2023-11-29 16:33:58 +00:00
liv
7f530ebf20 Merge pull request #1783 from neuschaefer/fe-nish
Fe-nish line rendering improvements
2023-11-29 17:33:41 +01:00
liv
11e74147ae Merge pull request #1791 from rust-lang/all-contributors/add-matthri
docs: add matthri as a contributor for code
2023-11-29 17:20:27 +01:00
allcontributors[bot]
5d78a2f103 docs: update .all-contributorsrc [skip ci] 2023-11-29 16:10:38 +00:00
allcontributors[bot]
194e0b951d docs: update AUTHORS.md [skip ci] 2023-11-29 16:10:37 +00:00
liv
369a3d3678 Merge pull request #1775 from matthri/update-notify-v6
Update `notify` dependency to v6
2023-11-29 17:10:21 +01:00
parnavh
21b1e6ecf8 fix(move_semantics): removed unused mut 2023-11-22 22:06:17 +05:30
J. Neuschäfer
12d1bf407a feat(watch): Add red color to the finishing ferris
This adds some eye-candy for users who finish Rustlings. It is based on
ANSI terminal escape sequences and should work in most environments.
2023-11-22 02:07:52 +01:00
J. Neuschäfer
5c4821ac6f fix(watch): Fix rendering of the finishing ferris
In commit 571bab2 ("Run clippy --fix"), the "" string was changed to
r"", even though it contains an intentional escape sequence, which now
looks wrong. My commit undoes this change:

Before:

	+----------------------------------------------------+
	|          You made it to the Fe-nish line!          |
	+--------------------------  ------------------------+
				  \\/
	     ▒▒          ▒▒▒▒▒▒▒▒      ▒▒▒▒▒▒▒▒          ▒▒
	   ▒▒▒▒  ▒▒    ▒▒        ▒▒  ▒▒        ▒▒    ▒▒  ▒▒▒▒
	   ▒▒▒▒  ▒▒  ▒▒            ▒▒            ▒▒  ▒▒  ▒▒▒▒
	 ░░▒▒▒▒░░▒▒  ▒▒            ▒▒            ▒▒  ▒▒░░▒▒▒▒
	   ▓▓▓▓▓▓▓▓  ▓▓      ▓▓██  ▓▓  ▓▓██      ▓▓  ▓▓▓▓▓▓▓▓
	     ▒▒▒▒    ▒▒      ████  ▒▒  ████      ▒▒░░  ▒▒▒▒
	       ▒▒  ▒▒▒▒▒▒        ▒▒▒▒▒▒        ▒▒▒▒▒▒  ▒▒
		 ▒▒▒▒▒▒▒▒▒▒▓▓▓▓▓▓▒▒▒▒▒▒▒▒▓▓▒▒▓▓▒▒▒▒▒▒▒▒
		   ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
		     ▒▒▒▒▒▒▒▒▒▒██▒▒▒▒▒▒██▒▒▒▒▒▒▒▒▒▒
		   ▒▒  ▒▒▒▒▒▒▒▒▒▒██████▒▒▒▒▒▒▒▒▒▒  ▒▒
		 ▒▒    ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒    ▒▒
	       ▒▒    ▒▒    ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒    ▒▒    ▒▒
	       ▒▒  ▒▒    ▒▒                  ▒▒    ▒▒  ▒▒
		   ▒▒  ▒▒                      ▒▒  ▒▒


After:

	+----------------------------------------------------+
	|          You made it to the Fe-nish line!          |
	+--------------------------  ------------------------+
				   \/
	     ▒▒          ▒▒▒▒▒▒▒▒      ▒▒▒▒▒▒▒▒          ▒▒
	   ▒▒▒▒  ▒▒    ▒▒        ▒▒  ▒▒        ▒▒    ▒▒  ▒▒▒▒
	   ▒▒▒▒  ▒▒  ▒▒            ▒▒            ▒▒  ▒▒  ▒▒▒▒
	 ░░▒▒▒▒░░▒▒  ▒▒            ▒▒            ▒▒  ▒▒░░▒▒▒▒
	   ▓▓▓▓▓▓▓▓  ▓▓      ▓▓██  ▓▓  ▓▓██      ▓▓  ▓▓▓▓▓▓▓▓
	     ▒▒▒▒    ▒▒      ████  ▒▒  ████      ▒▒░░  ▒▒▒▒
	       ▒▒  ▒▒▒▒▒▒        ▒▒▒▒▒▒        ▒▒▒▒▒▒  ▒▒
		 ▒▒▒▒▒▒▒▒▒▒▓▓▓▓▓▓▒▒▒▒▒▒▒▒▓▓▒▒▓▓▒▒▒▒▒▒▒▒
		   ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
		     ▒▒▒▒▒▒▒▒▒▒██▒▒▒▒▒▒██▒▒▒▒▒▒▒▒▒▒
		   ▒▒  ▒▒▒▒▒▒▒▒▒▒██████▒▒▒▒▒▒▒▒▒▒  ▒▒
		 ▒▒    ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒    ▒▒
	       ▒▒    ▒▒    ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒    ▒▒    ▒▒
	       ▒▒  ▒▒    ▒▒                  ▒▒    ▒▒  ▒▒
		   ▒▒  ▒▒                      ▒▒  ▒▒

Running `cargo clippy` (version 0.1.70) after this commit does not
reveal any new warnings.

Fixes: 571bab2 ("Run clippy --fix")
2023-11-22 02:07:36 +01:00
Daniel Somerfield
8bfe2ec71e Fix all_fruits_types_in_basket to fail if all fruit kinds are not included 2023-11-21 14:02:26 -08:00
Matthias Richter
adf7d1b975 chore(watch): update notify dependency to v6
closes #1640
2023-11-17 00:56:02 +01:00
liv
14e423fe53 Merge pull request #1770 from a-rustacean/revert-1761-all-contributors/add-sarupbanskota
Revert "docs: add sarupbanskota as a contributor for doc"
2023-11-16 18:16:46 +01:00
liv
a49f231b5d Merge pull request #1768 from adwsingh/main
Revert "Add CodeCrafters"
2023-11-16 18:12:34 +01:00
liv
70f472484f docs: revert fancy install aliases 2023-11-14 15:49:52 +01:00
Matthias Richter
77b687d501 fix(enums) make enum variants more consistent
closes #1545
2023-11-14 08:19:40 +01:00
jbouganim-parallel
0f629a47a5 fix broken link in windows installation instructions
https://github.com/rust-lang/rustlings/issues/1759
2023-11-13 17:30:38 -08:00
Dilshad
f01f2d13c7 Revert "docs: add sarupbanskota as a contributor for doc" 2023-11-12 22:19:40 +05:30
Bastian Pedersen
3461c4f73d Reword clippy1 exercise to be more readable 2023-11-12 11:39:14 +01:00
Adwait Kumar Singh
4d6cd0ebb4 Revert "Add CodeCrafters"
This reverts commit dad2216984.
2023-11-11 16:39:44 -08:00
junderw
3080141c5f Fix gitignore for clippy exercise 2023-11-10 23:19:23 -07:00
liv
bc3808cf29 Merge pull request #1761 from rust-lang/all-contributors/add-sarupbanskota
docs: add sarupbanskota as a contributor for doc
2023-11-07 10:14:14 +01:00
allcontributors[bot]
761fced786 docs: update .all-contributorsrc [skip ci] 2023-11-07 09:13:12 +00:00
allcontributors[bot]
706e075908 docs: update AUTHORS.md [skip ci] 2023-11-07 09:13:11 +00:00
liv
a13c7b0ae3 Merge pull request #1760 from sarupbanskota/patch-3
Add CodeCrafters to `Continuing On`
2023-11-07 10:12:55 +01:00
Sarup Banskota
dad2216984 Add CodeCrafters 2023-11-07 13:02:59 +08:00
liv
7e12aaa24a Merge pull request #1758 from rust-lang/all-contributors/add-raymon-roos
docs: add raymon-roos as a contributor for content
2023-11-06 12:42:13 +01:00
allcontributors[bot]
6e7f1f5f07 docs: update .all-contributorsrc [skip ci] 2023-11-06 11:39:55 +00:00
allcontributors[bot]
e0904de6ea docs: update AUTHORS.md [skip ci] 2023-11-06 11:39:54 +00:00
liv
4ecc35131c Merge pull request #1754 from raymon-roos/fix/traits-03-hint
fix(traits3): grammar mistake in the hint for traits3
2023-11-06 12:39:38 +01:00
liv
22838ba227 Merge pull request #1757 from rust-lang/all-contributors/add-danieltinazzi
docs: add danieltinazzi as a contributor for content
2023-11-06 12:38:27 +01:00
allcontributors[bot]
3b34167924 docs: update .all-contributorsrc [skip ci] 2023-11-06 11:38:20 +00:00
allcontributors[bot]
cb47760978 docs: update AUTHORS.md [skip ci] 2023-11-06 11:38:19 +00:00
liv
fb327612f8 Merge pull request #1753 from danieltinazzi/main
Fix progress bar
2023-11-06 12:38:01 +01:00
Raymon Roos
7e16e7721a fix(traits3): grammar mistake in the hint for traits3 2023-11-05 15:30:47 +01:00
danieltinazzi
3181d9f3f8 fix progress bar count 2023-11-04 17:29:10 +01:00
liv
02b1b5f6ab Merge pull request #1749 from rust-lang/all-contributors/add-0atman
docs: add 0atman as a contributor for content
2023-11-02 10:03:46 +01:00
allcontributors[bot]
9de432e6bf docs: update .all-contributorsrc [skip ci] 2023-11-02 09:03:38 +00:00
allcontributors[bot]
24f819d823 docs: update AUTHORS.md [skip ci] 2023-11-02 09:03:37 +00:00
liv
13837b25cf Merge pull request #1735 from 0atman/main
fix(intro2): Changed intro2 to be a name error, not a format string error
2023-11-02 10:01:48 +01:00
Tristram Oaten
2ac6606c6c fix(intro2): changed intro2 to be a name error, not a format string error. 2023-10-20 17:31:56 +01:00
liv
c306792449 Merge pull request #1728 from markgreene74/fix/small-typo-in-intro1.rs
fix(intro1.rs): typo in the exercise body
2023-10-18 23:35:25 +02:00
liv
1d16528542 Merge pull request #1733 from rust-lang/all-contributors/add-VeeDeltaVee
docs: add VeeDeltaVee as a contributor for doc
2023-10-18 23:34:54 +02:00
allcontributors[bot]
e74a7001ef docs: update .all-contributorsrc [skip ci] 2023-10-18 21:34:41 +00:00
allcontributors[bot]
c5c33578d9 docs: update AUTHORS.md [skip ci] 2023-10-18 21:34:40 +00:00
liv
0d65d17f10 Merge pull request #1729 from VeeDeltaVee/main
docs: fix windows installation instructions
2023-10-18 23:34:17 +02:00
liv
98096d9859 Merge pull request #1732 from rust-lang/all-contributors/add-markgreene74
docs: add markgreene74 as a contributor for code
2023-10-18 23:33:45 +02:00
allcontributors[bot]
5b25de927e docs: update .all-contributorsrc [skip ci] 2023-10-18 21:33:38 +00:00
allcontributors[bot]
a4698d8e10 docs: update AUTHORS.md [skip ci] 2023-10-18 21:33:37 +00:00
liv
078de99c61 Merge pull request #1727 from markgreene74/fix/clippy-exercises-failing-after-rename
fix(watch): update the CLIPPY_CARGO_TOML_PATH
2023-10-18 23:33:20 +02:00
liv
02a122c2e7 Merge pull request #1731 from rust-lang/all-contributors/add-TheBearodactyl
docs: add TheBearodactyl as a contributor for code
2023-10-18 23:32:53 +02:00
allcontributors[bot]
faa261e3e2 docs: update .all-contributorsrc [skip ci] 2023-10-18 21:32:33 +00:00
allcontributors[bot]
9394825018 docs: update AUTHORS.md [skip ci] 2023-10-18 21:32:32 +00:00
liv
efd6b8b9c7 Merge pull request #1730 from TheBearodactyl/main
Update install.sh
2023-10-18 23:31:19 +02:00
The Bearodactyl
be6630bec6 Update install.sh 2023-10-18 18:59:58 +00:00
Versha Dhankar
d757726aca docs: fix windows installation instructions
Currently, the windows installation instructions download a script from the URL ps1.rustlings.cool. This URL isn't detected as a URL in some cases, which means that PowerShell tries to load the data from a local file called ps1.rustlings.cool.

This was breaking my install, and adding the https:// fixed it.
2023-10-17 11:54:59 -07:00
markgreene74
3545c5a7a4 fix(intro1.rs): typo in the exercise body 2023-10-16 22:53:21 +01:00
markgreene74
3c4fde4610 fix(watch): update the CLIPPY_CARGO_TOML_PATH
... to reflect the changes to the exercise directory names.

The path exercises/clippy replaced with exercises/22_clippy.

closes #1726
2023-10-16 22:41:34 +01:00
liv
33220c5109 Merge pull request #1723 from adamhb123/exercise-directory-structure-update
Update Exercises Directory Names to Reflect Order
2023-10-16 14:02:51 +02:00
Adam Brewer
64d95837e9 Update Exercises Directory Names to Reflect Order 2023-10-16 07:37:12 -04:00
liv
c3941323e2 Merge pull request #1725 from rust-lang/all-contributors/add-matthewjnield
docs: add matthewjnield as a contributor for content
2023-10-16 11:27:42 +02:00
allcontributors[bot]
9a7d88f139 docs: update .all-contributorsrc [skip ci] 2023-10-16 09:27:26 +00:00
allcontributors[bot]
c7fccf74c9 docs: update AUTHORS.md [skip ci] 2023-10-16 09:27:25 +00:00
liv
54c0ac1f91 Merge pull request #1718 from matthewjnield/main
chore(errors): fix grammar typo and wording in errors exercises
2023-10-16 11:27:07 +02:00
Matt Nield
642aac6f43 chore(errors2): minor description wording change
This commit makes a minor change in the wording of the description of the errors2 exercise to avoid potential confusion, changing:

"A player of the game will type in how many items they want to buy, and the `total_cost` function will calculate the total cost of the tokens."
to
"A player of the game will type in how many items they want to buy, and the `total_cost` function will calculate the total cost of the items."
2023-10-13 15:47:38 -04:00
Matt Nield
5374811f96 chore(errors1): fix grammar typo in hint for exercise errors1
This commit corrects a grammar typo in the hint of the errors1 exercise, changing from:
"`Ok` and `Err` are one of the variants of `Result`,"
to:
"`Ok` and `Err` are the two variants of `Result`,"
2023-10-13 15:28:14 -04:00
liv
b97c88f202 docs: use new fancy install aliases 2023-10-13 13:28:45 +02:00
liv
d15096f0df Merge pull request #1700 from docwilco/proper-markdown-hints
chore: make hints proper markdown
2023-09-29 12:32:16 +02:00
Rogier 'DocWilco' Mulhuijzen
8e6c83b4cf chore: make hints proper markdown
Also rewrapped some hints to 80 columns so that they also look good in a
terminal.

closes #1698
2023-09-29 00:39:51 +02:00
liv
3bfd857a27 Merge pull request #1696 from docwilco/docwilco/fix-spawn-windows-debugging
fix(cli): make debugging in windows work
2023-09-28 11:03:08 +02:00
liv
c03bc1ec3e Merge pull request #1699 from rust-lang/all-contributors/add-docwilco
docs: add docwilco as a contributor for code
2023-09-28 11:02:51 +02:00
allcontributors[bot]
2fcafc6602 docs: update .all-contributorsrc [skip ci] 2023-09-28 09:02:44 +00:00
allcontributors[bot]
11227403ce docs: update AUTHORS.md [skip ci] 2023-09-28 09:02:43 +00:00
liv
177981d1cd chore: fix missing opening brace 2023-09-28 11:02:25 +02:00
liv
579735b1c3 Merge pull request #1697 from docwilco/docwilco/stop-littering-pdb-files-on-windows
fix(cli): stop littering .pdb files on windows
2023-09-28 11:01:33 +02:00
DocWilco
511e334365 fix(cli): stop littering pdb files on windows 2023-09-27 22:02:14 +02:00
DocWilco
cc658eb288 fix(cli): make debugging in windows work
On windows, if `stderr` or `stdin` aren't also set to `Stdio::null()`
the `spawn()` fails with `The handle is invalid`, and `rustlings`
thinks that there's no `rustc` installed.
2023-09-27 21:33:49 +02:00
liv
da3d55ba03 Merge pull request #1690 from jyn514/error-handling
Give a more helpful error when a file is missing
2023-09-26 11:02:05 +02:00
liv
e1bd5ef858 Merge pull request #1692 from rust-lang/all-contributors/add-offbyone
docs: add offbyone as a contributor for infra
2023-09-26 11:01:35 +02:00
liv
5c405ea0f5 Merge branch 'main' into all-contributors/add-offbyone 2023-09-26 11:01:28 +02:00
liv
92f96c1d45 Merge pull request #1693 from rust-lang/all-contributors/add-dieterplex
docs: add dieterplex as a contributor for infra
2023-09-26 11:00:22 +02:00
allcontributors[bot]
00e16b49e5 docs: update .all-contributorsrc [skip ci] 2023-09-26 08:59:26 +00:00
allcontributors[bot]
463e23e006 docs: update AUTHORS.md [skip ci] 2023-09-26 08:59:25 +00:00
liv
d7e1064b13 Merge pull request #1686 from dieterplex/mrv4clap
fix(installation): bump MinRustVersion to 1.70
2023-09-26 10:59:08 +02:00
allcontributors[bot]
e58c8322e9 docs: update .all-contributorsrc [skip ci] 2023-09-26 08:58:46 +00:00
allcontributors[bot]
be78831ac0 docs: update AUTHORS.md [skip ci] 2023-09-26 08:58:45 +00:00
liv
fb2840ede5 Merge pull request #1684 from offbyone/drop-envrc
Remove .envrc
2023-09-26 10:58:28 +02:00
jyn
b88c23897f Give a more helpful error when a file is missing
Previously, this would just say "missing file". Now it shows the path of the file that was missing,
which should make it easier to debug what went wrong.
2023-09-25 03:41:13 -04:00
d1t2
6aa47be78e fix(installation): bump MinRustVersion to 1.70
Since #1633 porting to Clap, min Rust version reqirement changes.
2023-09-22 11:32:39 +08:00
Chris Rose
c63c44ac70 Remove .envrc 2023-09-21 11:00:04 -06:00
liv
06f865307f Merge pull request #1683 from rust-lang/all-contributors/add-OfirLauber
docs: add OfirLauber as a contributor for content
2023-09-21 12:12:36 +02:00
allcontributors[bot]
f86a3c5ddc docs: update .all-contributorsrc [skip ci] 2023-09-21 10:01:31 +00:00
allcontributors[bot]
666857dc4e docs: update AUTHORS.md [skip ci] 2023-09-21 10:01:30 +00:00
liv
1552822404 Merge pull request #1682 from OfirLauber/main
chore: fix comment in enums3.rs
2023-09-21 12:01:16 +02:00
Ofir Lauber
83ac243c00 chore: fix comment in enums3.rs 2023-09-21 01:54:11 +03:00
liv
9a743f80c5 release: 5.6.1 2023-09-18 10:16:05 +02:00
liv
170aaabe9b Merge pull request #1673 from husjon/fix-enums3-formatting
Fixed formatting of `enums3` with rustfmt
2023-09-18 10:07:39 +02:00
liv
ef122c9973 Merge pull request #1681 from rust-lang/all-contributors/add-jurglic
docs: add jurglic as a contributor for content
2023-09-18 10:06:13 +02:00
allcontributors[bot]
8e8c74c6c0 docs: update .all-contributorsrc [skip ci] 2023-09-18 08:05:52 +00:00
allcontributors[bot]
a38840ae92 docs: update AUTHORS.md [skip ci] 2023-09-18 08:05:51 +00:00
liv
2e48fe9cc7 Merge pull request #1675 from jurglic/fix-rand-typo
fix: test name typo
2023-09-18 10:05:37 +02:00
liv
3b451e4ab1 Merge pull request #1680 from rust-lang/all-contributors/add-krmpotic
docs: add krmpotic as a contributor for content
2023-09-18 10:03:57 +02:00
allcontributors[bot]
746180b153 docs: update .all-contributorsrc [skip ci] 2023-09-18 08:03:49 +00:00
allcontributors[bot]
62415f758b docs: update AUTHORS.md [skip ci] 2023-09-18 08:03:48 +00:00
liv
0807353bf0 Merge pull request #1678 from krmpotic/main
remove hint comments when no hint exists
2023-09-18 10:03:35 +02:00
liv
a808cf71a3 Merge pull request #1679 from rust-lang/revert-1620-fix_1611
Revert "Fix 1611"
2023-09-18 09:54:20 +02:00
liv
8716558696 Revert "Fix 1611" 2023-09-18 09:54:08 +02:00
Luka Krmpotic
eb84eaf151 remove hint comments when no hint exists 2023-09-15 22:29:55 +02:00
Jurglic
a0699bd917 fix: test name typo 2023-09-14 17:10:06 +02:00
Jon Erling Hustadnes
0ee9c5b776 Fixed formatting with rust-analyzer 2023-09-13 20:26:47 +02:00
liv
51c8da06b0 Merge pull request #1672 from rust-lang/all-contributors/add-CobaltCause
docs: add CobaltCause as a contributor for infra
2023-09-12 10:57:20 +02:00
allcontributors[bot]
95640cba23 docs: update .all-contributorsrc [skip ci] 2023-09-12 08:57:12 +00:00
allcontributors[bot]
241889159a docs: update AUTHORS.md [skip ci] 2023-09-12 08:57:11 +00:00
liv
edb8813cc7 Merge pull request #1671 from CobaltCause/nix-flake-update
chore: update flake.lock
2023-09-12 10:56:54 +02:00
Charles Hall
4a1290cb66 chore: update flake.lock
Flake lock file updates:

• Updated input 'flake-compat':
    'github:edolstra/flake-compat/b4a34015c698c7793d592d66adbab377907a2be8' (2022-04-19)
  → 'github:edolstra/flake-compat/35bb57c0c8d8b62bbfd284272c928ceb64ddbde9' (2023-01-17)
• Updated input 'flake-utils':
    'github:numtide/flake-utils/c0e246b9b83f637f4681389ecabcb2681b4f3af0' (2022-08-07)
  → 'github:numtide/flake-utils/f9e7cf818399d17d347f847525c5a5a8032e4e44' (2023-08-23)
• Added input 'flake-utils/systems':
    'github:nix-systems/default/da67096a3b9bf56a91d16901293e51ba5b49a27e' (2023-04-09)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/b39fd6e4edef83cb4a135ebef98751ce23becc33' (2022-10-24)
  → 'github:nixos/nixpkgs/db9208ab987cdeeedf78ad9b4cf3c55f5ebd269b' (2023-09-08)
2023-09-11 20:04:37 -07:00
liv
d52ce2d354 Merge pull request #1670 from rust-lang/all-contributors/add-husjon
docs: add husjon as a contributor for content
2023-09-09 14:58:45 +02:00
allcontributors[bot]
b33ef03ac6 docs: update .all-contributorsrc [skip ci] 2023-09-09 12:58:36 +00:00
allcontributors[bot]
dceba07e82 docs: update AUTHORS.md [skip ci] 2023-09-09 12:58:35 +00:00
liv
e12504a61d Merge pull request #1667 from husjon/update-primitive_types3-requirement
Make `primitive_types3` require at least 100 elements
2023-09-09 14:58:14 +02:00
liv
9de22c9afa Merge pull request #1669 from rust-lang/all-contributors/add-ob
docs: add ob as a contributor for content
2023-09-09 01:23:54 +02:00
allcontributors[bot]
e17d603201 docs: update .all-contributorsrc [skip ci] 2023-09-08 23:23:32 +00:00
allcontributors[bot]
47fbd6d160 docs: update AUTHORS.md [skip ci] 2023-09-08 23:23:31 +00:00
liv
9dc8f13925 Merge pull request #1668 from ob/ob/fix-bug
Fix compiler error and clarify instructions
2023-09-09 01:23:15 +02:00
Oscar Bonilla
33a4f4e454 Fix compiler error and clarify instructions 2023-09-08 09:49:11 -07:00
Jon Erling Hustadnes
a5e4133516 Make primitive_types3 require at least 100 elements
Made the function panic if it's not long enough
2023-09-08 16:42:16 +02:00
liv
4d04aad890 Merge pull request #1641 from mo8it/move-semantics5-test
Convert exercises with assertions to tests
2023-09-06 09:31:46 +02:00
liv
847b57423f update for page build 2023-09-04 15:26:22 +02:00
liv
58cabf2ebd release: 5.6.0 2023-09-04 15:23:04 +02:00
liv
ae28d2fa2d Merge pull request #1665 from rust-lang/chore/better-ci
chore: consolidate CI workflows
2023-09-04 15:02:14 +02:00
liv
de45998f69 chore: remove argh 2023-09-04 15:02:02 +02:00
liv
0d36050b36 chore: remove link checker 2023-09-04 14:58:13 +02:00
liv
f31a18429b chore: consolidate CI workflows 2023-09-04 14:57:16 +02:00
liv
3ad30308ec feat: add oranda deploy workflow 2023-09-04 14:50:31 +02:00
liv
6c0c397507 fix: absolut-ize readme links 2023-09-04 14:49:52 +02:00
liv
42da308140 Merge pull request #1664 from rust-lang/all-contributors/add-Jak-Ch-ll
docs: add Jak-Ch-ll as a contributor for content
2023-09-04 14:39:54 +02:00
allcontributors[bot]
680a32a85c docs: update .all-contributorsrc [skip ci] 2023-09-04 12:39:46 +00:00
allcontributors[bot]
951dde4e94 docs: update AUTHORS.md [skip ci] 2023-09-04 12:39:45 +00:00
liv
14fbdd20ac Merge pull request #1473 from Jak-Ch-ll/update-hints-for-vecs2
docs(vecs2): update hints
2023-09-04 14:39:28 +02:00
liv
ad0fad4218 Merge branch 'main' into update-hints-for-vecs2 2023-09-04 14:39:16 +02:00
liv
a5fe578e79 Merge pull request #1663 from rust-lang/all-contributors/add-pksadiq
docs: add pksadiq as a contributor for content
2023-09-04 14:38:06 +02:00
allcontributors[bot]
d5525794f8 docs: update .all-contributorsrc [skip ci] 2023-09-04 12:37:58 +00:00
allcontributors[bot]
3f7ef6fe33 docs: update AUTHORS.md [skip ci] 2023-09-04 12:37:56 +00:00
liv
992e5163d3 Merge pull request #1565 from pksadiq/fix-enum3-message-modification
fix(enums3): modify message string in test
2023-09-04 14:37:44 +02:00
liv
d03f624357 Merge pull request #1662 from rust-lang/all-contributors/add-bean5
docs: add bean5 as a contributor for content
2023-09-04 14:35:42 +02:00
allcontributors[bot]
b547321868 docs: update .all-contributorsrc [skip ci] 2023-09-04 12:35:35 +00:00
allcontributors[bot]
9a0e5bd003 docs: update AUTHORS.md [skip ci] 2023-09-04 12:35:34 +00:00
liv
c57ad35e5b Merge pull request #1477 from bean5/main
small changes to a few README files
2023-09-04 14:35:15 +02:00
liv
f7ef198e3a Merge pull request #1661 from rust-lang/all-contributors/add-willhack
docs: add willhack as a contributor for content
2023-09-04 14:34:46 +02:00
allcontributors[bot]
fcac2b553c docs: update .all-contributorsrc [skip ci] 2023-09-04 12:34:38 +00:00
allcontributors[bot]
e8c2d27b4a docs: update AUTHORS.md [skip ci] 2023-09-04 12:34:37 +00:00
liv
630cbf8f85 Merge pull request #1587 from willhack/chore/update-hints
chore: update line reference in strings2 hint
2023-09-04 14:34:20 +02:00
liv
0aa9418736 Merge branch 'main' into chore/update-hints 2023-09-04 14:34:13 +02:00
liv
abc3013096 Merge pull request #1660 from rust-lang/fix/move-semantics-tests
fix: refactor move semantics 1-4 into tests
2023-09-04 14:32:01 +02:00
liv
51e237d5f9 fix: refactor move semantics 1-4 into tests 2023-09-04 14:29:06 +02:00
liv
6eb9bde786 Merge pull request #1659 from rust-lang/all-contributors/add-yamila-moreno
docs: add yamila-moreno as a contributor for content
2023-09-04 13:58:37 +02:00
allcontributors[bot]
dce89aefb9 docs: update .all-contributorsrc [skip ci] 2023-09-04 11:58:25 +00:00
allcontributors[bot]
47e14cff8d docs: update AUTHORS.md [skip ci] 2023-09-04 11:58:24 +00:00
liv
4d9b68b377 Merge pull request #1598 from yamila-moreno/fix/hint-in-primitives-4
fix(primitives-4.rs): update hint so it's less confusing
2023-09-04 13:58:05 +02:00
liv
a8f4994935 Merge pull request #1658 from rust-lang/all-contributors/add-szabgab
docs: add szabgab as a contributor for content
2023-09-04 13:55:38 +02:00
allcontributors[bot]
8ca60f2cbb docs: update .all-contributorsrc [skip ci] 2023-09-04 11:55:28 +00:00
allcontributors[bot]
bb550497d5 docs: update AUTHORS.md [skip ci] 2023-09-04 11:55:27 +00:00
liv
849e4a3647 Merge pull request #1599 from szabgab/if1-test-case
add test-case to if/if1 to check equal values
2023-09-04 13:55:10 +02:00
liv
c177507db3 Merge pull request #1610 from jrcarl624/patch-1
Updated if3.rs: Added a note that states that the test does not need to be changed.
2023-09-04 13:54:20 +02:00
liv
a09a0c47ae fix: add extra line in if3 comment 2023-09-04 13:53:54 +02:00
liv
a26c396335 Merge pull request #1657 from rust-lang/all-contributors/add-mkovaxx
docs: add mkovaxx as a contributor for content
2023-09-04 13:52:22 +02:00
allcontributors[bot]
4aa5ca2818 docs: update .all-contributorsrc [skip ci] 2023-09-04 11:52:13 +00:00
allcontributors[bot]
27881a83d4 docs: update AUTHORS.md [skip ci] 2023-09-04 11:52:11 +00:00
liv
6378c2a81f Merge pull request #1620 from mkovaxx/fix_1611
Fix 1611
2023-09-04 13:51:57 +02:00
liv
45cadcf020 Merge pull request #1656 from rust-lang/all-contributors/add-gabay
docs: add gabay as a contributor for content
2023-09-04 13:46:50 +02:00
allcontributors[bot]
7d53abdb0a docs: update .all-contributorsrc [skip ci] 2023-09-04 11:46:42 +00:00
allcontributors[bot]
a059ded709 docs: update AUTHORS.md [skip ci] 2023-09-04 11:46:41 +00:00
liv
4de3b4a635 Merge pull request #1630 from gabay/chore/threads2-text
info.toml: update threads2 text.
2023-09-04 13:46:28 +02:00
liv
64162d3a24 Merge pull request #1649 from x10an14/main
improvement(development): Add nix-direnv integration
2023-09-04 13:42:52 +02:00
liv
626e2749a6 Merge pull request #1650 from x10an14/fork/add-flake-outputs
feat(flake): Add defaults to commands in flake
2023-09-04 13:41:37 +02:00
liv
b39d896db7 Merge pull request #1655 from rust-lang/all-contributors/add-x10an14
docs: add x10an14 as a contributor for infra
2023-09-04 13:37:20 +02:00
allcontributors[bot]
4a9699226a docs: update .all-contributorsrc [skip ci] 2023-09-04 11:37:10 +00:00
allcontributors[bot]
11f4ec93ac docs: update AUTHORS.md [skip ci] 2023-09-04 11:37:09 +00:00
liv
e57797a8ff Merge pull request #1653 from x10an14/fork/fix-nix-build-of-reset-test
fix(nix/tests): Add `git` to Nix's rust build/test sandbox
2023-09-04 13:36:24 +02:00
liv
0b7975b195 Merge pull request #1633 from mo8it/clap
Port to Clap
2023-09-04 13:35:33 +02:00
mo8it
362318a6e0 Adapt tests 2023-09-04 13:30:49 +02:00
mo8it
5a93f2a4f1 Port to Clap 2023-09-04 13:30:46 +02:00
x10an14
e7bdc83a8f fix(nix/tests): Add git to Nix's rust build/test sandbox
The integration test `reset_single_exercise` depends on Git...
2023-08-30 19:41:29 +02:00
x10an14
60b8487600 feat(flake): Add defaults to commands in flake
So that:
- `nix build .#`, and
- `nix run .#` both work.
2023-08-30 18:09:41 +02:00
x10an14
013f22c89c improvement(development): Add nix-direnv integration
So as to automatically open a nix devShell for those who use direnv/want to use direnv to make their lives more automated.
2023-08-30 18:03:45 +02:00
liv
2d1da2ab57 Merge pull request #1645 from mo8it/prober-types-structs3
Use u32 instead of i32
2023-08-29 10:20:36 +02:00
mo8it
9c0581bc0f Use u32 instead of i32 2023-08-29 00:52:11 +02:00
liv
d79984dbda Merge pull request #1637 from mo8it/fix-warnings
Run clippy --fix
2023-08-28 13:38:21 +02:00
liv
c2eaa8f019 Merge pull request #1638 from mo8it/fix-line-numbers
Avoid line numbers in hints
2023-08-28 13:38:02 +02:00
liv
6c517199bf Merge pull request #1644 from rust-lang/all-contributors/add-mo8it
docs: add mo8it as a contributor for code
2023-08-28 13:37:42 +02:00
allcontributors[bot]
d258c30406 docs: update .all-contributorsrc [skip ci] 2023-08-28 11:37:34 +00:00
allcontributors[bot]
7bb69f8641 docs: update AUTHORS.md [skip ci] 2023-08-28 11:37:33 +00:00
liv
c1051f3f52 Merge pull request #1639 from mo8it/update-deps
Update deps
2023-08-28 13:37:20 +02:00
mo8it
193b600382 Convert other exercises that have assertions to test mode 2023-08-27 01:06:01 +02:00
mo8it
16936d95d1 Fix typo 2023-08-27 00:50:35 +02:00
mo8it
64224d3918 Make move_semantics5 a test 2023-08-27 00:48:19 +02:00
mo8it
c0b8af2c42 Fix indicatif 2023-08-26 23:35:07 +02:00
mo8it
c655612d2d Update deps 2023-08-26 23:34:40 +02:00
mo8it
3cc9be0d11 Avoid line numbers in hints 2023-08-26 23:25:12 +02:00
mo8it
571bab20c1 Run clippy --fix 2023-08-26 23:07:20 +02:00
liv
c663f06669 Merge pull request #1636 from rust-lang/all-contributors/add-eLVas
docs: add eLVas as a contributor for content
2023-08-26 22:27:41 +02:00
allcontributors[bot]
77f0e177e6 docs: update .all-contributorsrc [skip ci] 2023-08-26 20:27:33 +00:00
allcontributors[bot]
e7ad540618 docs: update AUTHORS.md [skip ci] 2023-08-26 20:27:32 +00:00
liv
38b4327f41 Merge pull request #1632 from eLVas/main
fix(errors1): change Result to Option in exersise description
2023-08-26 22:27:18 +02:00
Ivan Vasiunyk
fa0463b3b2 fix(errors1): change Result to Option in exersise description 2023-08-25 21:49:22 +02:00
Roi Gabay
af76794627 info.toml: update threads2 text.
the previous text does not appear in the provided link (https://doc.rust-lang.org/book/ch16-03-shared-state.html#atomic-reference-counting-with-arct).
2023-08-21 16:19:30 +03:00
liv
464cb5566d Merge pull request #1625 from rust-lang/all-contributors/add-shirts
docs: add shirts as a contributor for content
2023-08-15 11:20:10 +02:00
allcontributors[bot]
d670847308 docs: update .all-contributorsrc [skip ci] 2023-08-15 09:20:02 +00:00
allcontributors[bot]
33a45d0f89 docs: update AUTHORS.md [skip ci] 2023-08-15 09:20:01 +00:00
liv
da395fed20 Merge pull request #1624 from shirts/shirts/errors-2-comments
Fix comment in errors2
2023-08-15 11:19:43 +02:00
Kevin C
ad1c29c512 Fix comment in errors2 2023-08-14 12:49:28 -07:00
Mate Kovacs
720f33eee6 add .to_mut() in test owned_mutation() 2023-08-10 19:56:47 +09:00
liv
64035f766f Merge pull request #1618 from rust-lang/all-contributors/add-barlevalon
docs: add barlevalon as a contributor for content
2023-08-07 17:40:45 +02:00
allcontributors[bot]
1ace9795f7 docs: update .all-contributorsrc [skip ci] 2023-08-07 15:38:52 +00:00
allcontributors[bot]
24c838bc0b docs: update AUTHORS.md [skip ci] 2023-08-07 15:38:51 +00:00
liv
b64aa9993b Merge pull request #1617 from barlevalon/from_into_tests_fix
fix(conversions/from_into.rs): test_trailing_comma() and test_trailing_comma_and_some_string()
2023-08-07 17:38:37 +02:00
Alon Hearter
2691a35102 Fix from_into.rs tests 2023-08-07 18:22:49 +03:00
Joshua Carlson
828e724659 Added note related to tests. 2023-08-01 13:33:32 -04:00
liv
11d8aea96f Merge pull request #1609 from rust-lang/all-contributors/add-softarn
docs: add softarn as a contributor for content
2023-08-01 10:50:22 +02:00
allcontributors[bot]
62adbdf7f2 docs: update .all-contributorsrc [skip ci] 2023-08-01 08:50:14 +00:00
allcontributors[bot]
f39df76215 docs: update AUTHORS.md [skip ci] 2023-08-01 08:50:13 +00:00
liv
4d26307cfc Merge pull request #1607 from softarn/main
chore(errors4): improved comment
2023-08-01 10:49:55 +02:00
Marcus Höjvall
be8d1df8b9 chore(errors4): improved comment 2023-07-28 23:05:01 +02:00
liv
4592b4c409 Merge pull request #1603 from rust-lang/all-contributors/add-alexfertel
docs: add alexfertel as a contributor for content
2023-07-24 10:29:34 +02:00
allcontributors[bot]
bb5fa3f1e8 docs: update .all-contributorsrc [skip ci] 2023-07-24 08:29:18 +00:00
allcontributors[bot]
8283ae8c4c docs: update AUTHORS.md [skip ci] 2023-07-24 08:29:17 +00:00
liv
478e9d67df Merge pull request #1601 from alexfertel/patch-1
docs: dedup repeated sentence
2023-07-24 10:29:00 +02:00
Alexander González
ef8f1f108b docs: dedup repeated sentence 2023-07-21 14:42:19 +02:00
Gabor Szabo
7f9f897945 add test-case to if/if1 to check equal values 2023-07-20 08:28:18 +03:00
Yamila Moreno
662e5bddd7 fix(primitives-4.rs): update hint so it's less confusing 2023-07-17 15:58:29 +02:00
liv
b949422d46 Merge pull request #1597 from rust-lang/all-contributors/add-johnDeSilencio
docs: add johnDeSilencio as a contributor for code
2023-07-17 12:31:25 +02:00
allcontributors[bot]
2c7dec7327 docs: update .all-contributorsrc [skip ci] 2023-07-17 10:31:16 +00:00
allcontributors[bot]
f4d86f384c docs: update AUTHORS.md [skip ci] 2023-07-17 10:31:15 +00:00
liv
13bbe9c07d Merge pull request #1594 from johnDeSilencio/bugfix/proc-macro2-cargo-update
fix: building rustlings on nightly
2023-07-17 12:30:48 +02:00
Nicholas R. Smith
2934d062a3 fix: run cargo update to build proc-macro2 on nightly 2023-07-14 12:12:05 -07:00
Will Hack
37cdea9183 Merge branch 'main' into chore/update-hints 2023-07-04 12:05:19 -04:00
liv
a7300da78d Merge pull request #1590 from rust-lang/all-contributors/add-jrcarl624
docs: add jrcarl624 as a contributor for content
2023-07-04 11:57:39 +02:00
allcontributors[bot]
176fb7c447 docs: update .all-contributorsrc [skip ci] 2023-07-04 09:57:31 +00:00
allcontributors[bot]
0e0c5dfe99 docs: update AUTHORS.md [skip ci] 2023-07-04 09:57:30 +00:00
liv
6cc34fa1f7 Merge pull request #1588 from jrcarl624/main
added if3 based on: `Using if in a let Statement`
2023-07-04 11:57:11 +02:00
Joshua Carlson
287172698a added if3 based on: Using if in a let Statement 2023-07-03 14:52:13 -04:00
Will Hack
0ab781c7a7 chore: remove line reference from strings2 hint 2023-07-03 14:20:38 -04:00
liv
c5b0627180 chore: update oranda config for 0.1.0 2023-07-03 18:50:50 +02:00
Will Hack
b99c7b8c37 chore: update line reference in strings2 hint 2023-07-02 13:46:59 -04:00
liv
a6b562b8e4 Merge pull request #1580 from rust-lang/all-contributors/add-vnprc
docs: add vnprc as a contributor for content
2023-06-26 15:20:06 +02:00
allcontributors[bot]
a46d42f45e docs: update .all-contributorsrc [skip ci] 2023-06-26 13:19:53 +00:00
allcontributors[bot]
47b3a53132 docs: update AUTHORS.md [skip ci] 2023-06-26 13:19:52 +00:00
liv
a470500a43 Merge pull request #1579 from vnprc/docs
chore: use correct line number in strings2.rs hint
2023-06-26 15:19:37 +02:00
vnprc
405b32e77a chore: use correct line number in strings2.rs hint 2023-06-26 09:17:39 -04:00
liv
2584ff0440 Merge pull request #1577 from rust-lang/all-contributors/add-novanish
docs: add novanish as a contributor for content
2023-06-26 09:58:32 +02:00
allcontributors[bot]
2e4022dd73 docs: update .all-contributorsrc [skip ci] 2023-06-26 07:58:24 +00:00
allcontributors[bot]
f03a915c75 docs: update AUTHORS.md [skip ci] 2023-06-26 07:58:23 +00:00
liv
9379d06275 Merge pull request #1573 from novanish/refactor-error-1-comment
refactor: Update comment to use correct construct name 'Result' inste…
2023-06-26 09:58:08 +02:00
Anish
eacf7db6f3 refactor: Update comment to use correct construct name 'Result' instead of 'Option'
Refactor the comment in the code to provide a more accurate description of the construct being used. Replace the mention of Option with Result.
2023-06-23 17:18:17 +05:45
liv
adc7ca5690 fix(move_semantics2): change type back to compile 2023-06-22 10:10:44 +02:00
Mohammed Sadiq
c5231f0ce3 fix(enums3): modify message string in test
Otherwise it won't actually test the change of state.message and
it would fail to check if the user missed changing state.message

This happened to me as I had a catch-all line in `match`
2023-06-16 13:50:54 +05:30
liv
c2264cabae fix: install into $home on windows for now
Stopgap measure so that people stop installing into System32 (since that's the default Powershell elevated prompt directory for some reason).
2023-06-15 10:56:53 +02:00
liv
f3d0ba2f51 Merge pull request #1563 from rust-lang/all-contributors/add-tajo48
docs: add tajo48 as a contributor for content
2023-06-15 10:42:10 +02:00
allcontributors[bot]
0cb63cdd01 docs: update .all-contributorsrc [skip ci] 2023-06-15 08:42:02 +00:00
allcontributors[bot]
c236a80a37 docs: update AUTHORS.md [skip ci] 2023-06-15 08:42:01 +00:00
liv
4b9e77d2ef Merge pull request #1562 from tajo48/main
chore: update hint for vecs2
2023-06-15 10:41:46 +02:00
tajo48
e1704a2f1b Merge branch 'main' into main 2023-06-15 00:46:45 +02:00
liv
0282da6881 Merge pull request #1559 from rust-lang/all-contributors/add-robertefry
docs: add robertefry as a contributor for content
2023-06-12 12:39:41 +02:00
allcontributors[bot]
846e68e1aa docs: update .all-contributorsrc [skip ci] 2023-06-12 10:39:27 +00:00
allcontributors[bot]
33cf4f7eca docs: update AUTHORS.md [skip ci] 2023-06-12 10:39:26 +00:00
liv
132d5ca943 Merge pull request #1535 from robertefry/comment_cleanup
docs: cleanup the explanation paragraphs at the start of each exercise.
2023-06-12 12:39:09 +02:00
liv
b44472b237 Merge branch 'main' into comment_cleanup 2023-06-12 12:39:02 +02:00
liv
4cfcf2ccd7 Merge pull request #1558 from rust-lang/all-contributors/add-Frosthage
docs: add Frosthage as a contributor for content
2023-06-12 12:36:40 +02:00
allcontributors[bot]
a2f99ad00d docs: update .all-contributorsrc [skip ci] 2023-06-12 10:36:23 +00:00
allcontributors[bot]
eb3c9658b1 docs: update AUTHORS.md [skip ci] 2023-06-12 10:36:22 +00:00
liv
06ddcfb0bb Merge pull request #1113 from Frosthage/main
Improve hint for as_ref_mut
2023-06-12 12:36:06 +02:00
liv
d6bb8547b3 Merge pull request #1557 from rust-lang/all-contributors/add-luhem7
docs: add luhem7 as a contributor for content
2023-06-12 12:33:53 +02:00
allcontributors[bot]
5219621595 docs: update .all-contributorsrc [skip ci] 2023-06-12 10:33:45 +00:00
allcontributors[bot]
a14f0c3f55 docs: update AUTHORS.md [skip ci] 2023-06-12 10:33:44 +00:00
liv
44f706a5e7 Merge pull request #1542 from luhem7/main
fix(threads, smart pointers): Swap order of threads and smart pointers exercises
2023-06-12 12:33:29 +02:00
liv
55636e6978 Merge pull request #1556 from rust-lang/all-contributors/add-FWDekker
docs: add FWDekker as a contributor for content
2023-06-12 12:33:01 +02:00
allcontributors[bot]
5921948de8 docs: update .all-contributorsrc [skip ci] 2023-06-12 10:32:26 +00:00
allcontributors[bot]
bd05bab4bf docs: update AUTHORS.md [skip ci] 2023-06-12 10:32:25 +00:00
liv
c6c7dd2fce Merge pull request #1544 from FWDekker/main
fix(vecs): rename outdated variable name in hint
2023-06-12 12:32:10 +02:00
liv
171d20ce3e Merge pull request #1546 from b-apperlo/b-apperlo-patch-1
feat: added test function to hashmaps2.rs
2023-06-12 12:20:36 +02:00
liv
c2bb9ebd8e Merge pull request #1555 from rust-lang/all-contributors/add-b-apperlo
docs: add b-apperlo as a contributor for content
2023-06-12 12:19:02 +02:00
allcontributors[bot]
d35a352fe6 docs: update .all-contributorsrc [skip ci] 2023-06-12 10:18:55 +00:00
allcontributors[bot]
4fd52390ee docs: update AUTHORS.md [skip ci] 2023-06-12 10:18:54 +00:00
liv
974717ca11 Merge pull request #1547 from b-apperlo/b-apperlo-patch-2
fix: update hashmaps3.rs
2023-06-12 12:18:36 +02:00
liv
d77e6c0d05 Merge pull request #1553 from rust-lang/all-contributors/add-IVIURRAY
docs: add IVIURRAY as a contributor for content
2023-06-12 12:17:30 +02:00
allcontributors[bot]
47fcab1e60 docs: update .all-contributorsrc [skip ci] 2023-06-12 10:17:22 +00:00
allcontributors[bot]
a1188ca0ee docs: update AUTHORS.md [skip ci] 2023-06-12 10:17:21 +00:00
liv
0d2a1bdef1 Merge pull request #1549 from IVIURRAY/enums3-message-test
fix(enums3): add test for message
2023-06-12 12:17:07 +02:00
liv
369ae2e63d feat(move_semantics2): rewrite hint 2023-06-12 12:07:18 +02:00
liv
1ce9d93e94 Merge pull request #1552 from rust-lang/all-contributors/add-proofconstruction
docs: add proofconstruction as a contributor for infra
2023-06-12 11:50:10 +02:00
allcontributors[bot]
e0ea03dc56 docs: update .all-contributorsrc [skip ci] 2023-06-12 09:50:03 +00:00
allcontributors[bot]
3cced07c13 docs: update AUTHORS.md [skip ci] 2023-06-12 09:50:02 +00:00
liv
dca6e869df Merge pull request #1550 from proofconstruction/check-lockfile-sync
chore(ci): add action step to check if lockfile is synced
2023-06-12 11:49:21 +02:00
alex
f30f0bf148 chore(ci): add action step to check if lockfile is synced 2023-06-11 16:30:01 -05:00
IVIURARY
d0a1783083 fix(enums3): add test for message
closes #1548
2023-06-08 22:14:25 +01:00
Bert Apperlo
a4fe3602b2 fix: updated comment for struct 2023-06-08 16:46:45 +02:00
Bert Apperlo
8974e33f69 fix: update hashmaps3.rs 2023-06-08 16:44:39 +02:00
Bert Apperlo
bbfb4c7e63 feat: added test function to hashmaps2.rs
The existing test functions only check if a kind of fruit exists in the hashmap, but not if the amount of fruits is higher than zero. This new test function solves this.
2023-06-08 15:49:07 +02:00
Florine W. Dekker
479574e88e fix(vecs): rename outdated variable name in hint 2023-06-07 16:58:02 +02:00
luhem7
a96bbcd967 fix(threads, smart pointers): Swap order of threads and smart pointers exercises
closes #1541
2023-06-03 10:20:29 -04:00
tajo48
1e02f194fd update hint for vecs2 to match with exercise as it was updated to fix clarity 2023-05-31 16:37:41 +02:00
Robert Fry
7eef5d15ee docs: cleanup the explanation paragraphs at the start of each exercise. 2023-05-29 18:41:51 +01:00
liv
30291a3c25 Merge pull request #1527 from rust-lang/all-contributors/add-lazywalker
docs: add lazywalker as a contributor for content
2023-05-23 11:06:10 +02:00
allcontributors[bot]
33224370eb docs: update .all-contributorsrc [skip ci] 2023-05-23 09:05:59 +00:00
allcontributors[bot]
b9cb931167 docs: update AUTHORS.md [skip ci] 2023-05-23 09:05:58 +00:00
liv
10d8357876 Merge pull request #1526 from lazywalker/fix-iterators5
fix(exercises): use snake_case variables to avoid warning
2023-05-23 11:05:43 +02:00
lazywalker
9604ab6621 fix(exercises): use snake_case variables 2023-05-23 15:00:55 +08:00
liv
e35a84fcb3 chore(oranda): don't generate changelog pages 2023-05-22 11:09:57 +02:00
liv
e910205c19 Merge pull request #1524 from rust-lang/all-contributors/add-b1ue64
docs: add b1ue64 as a contributor for content
2023-05-21 11:39:36 +02:00
allcontributors[bot]
15ad02c984 docs: update .all-contributorsrc [skip ci] 2023-05-21 09:39:26 +00:00
allcontributors[bot]
8e62346f86 docs: update AUTHORS.md [skip ci] 2023-05-21 09:39:25 +00:00
liv
59344c679d Merge pull request #1523 from b1ue64/b1ue64-patch-1
feat(iterators5): remove outdated part of hint
2023-05-21 11:39:12 +02:00
b1ue64
a7257a1d1e feat(iterators5): remove outdated part of hint 2023-05-20 16:38:33 -04:00
liv
f2de12aa34 release: 5.5.1 2023-05-17 21:05:51 +02:00
liv
2d544f18b5 fix: revert back to using relative paths 2023-05-17 21:04:32 +02:00
liv
0667ee7c4d fix: add oranda-hide class to readme 2023-05-17 17:11:49 +02:00
liv
19cee73209 chore: set up oranda
Sets up oranda so we can get nice website things for free. Some caveats we have right now:

- Absolutely manual, I have to do `oranda build` and the deploy manually right now
- I had to pop the Readme into a new Markdown file because the first header in there was looking very strange
2023-05-17 16:56:01 +02:00
liv
4c638e365f Merge branch 'main' of github.com:rust-lang/rustlings 2023-05-17 16:30:31 +02:00
liv
f452fd7bb0 release: 5.5.0 2023-05-17 16:30:22 +02:00
liv
6d1f8c5111 Merge pull request #1520 from rust-lang/all-contributors/add-Ben2917
docs: add Ben2917 as a contributor for content
2023-05-17 16:14:54 +02:00
allcontributors[bot]
ab61a0d5c7 docs: update .all-contributorsrc [skip ci] 2023-05-17 14:14:44 +00:00
allcontributors[bot]
af52fce275 docs: update AUTHORS.md [skip ci] 2023-05-17 14:14:43 +00:00
liv
656140d9e6 Merge pull request #1478 from Ben2917/improved_tests_for_iterators5
fix: Added some extra tests to validate iterators5 solution
2023-05-17 16:14:29 +02:00
liv
9508e97914 feat: write absolute root module paths for lsp 2023-05-17 16:14:10 +02:00
liv
a6f99645c6 chore: rustfmt 2023-05-17 16:02:39 +02:00
liv
fd84c2d8f7 Merge pull request #1519 from rust-lang/all-contributors/add-lionel-rowe
docs: add lionel-rowe as a contributor for content
2023-05-17 15:57:26 +02:00
allcontributors[bot]
eeb439eaf9 docs: update .all-contributorsrc [skip ci] 2023-05-17 13:57:11 +00:00
allcontributors[bot]
58cbdd71b6 docs: update AUTHORS.md [skip ci] 2023-05-17 13:57:10 +00:00
liv
81cd97902a Merge pull request #1487 from lionel-rowe/patch-1
feat(options2): better test for layered_option
2023-05-17 15:56:55 +02:00
liv
ccf4a78f5d Merge pull request #1518 from rust-lang/all-contributors/add-deedy5
docs: add deedy5 as a contributor for content
2023-05-17 15:56:10 +02:00
allcontributors[bot]
6abff39549 docs: update .all-contributorsrc [skip ci] 2023-05-17 13:55:29 +00:00
allcontributors[bot]
94c6131c59 docs: update AUTHORS.md [skip ci] 2023-05-17 13:55:28 +00:00
liv
05fcc246ae Merge pull request #1490 from deedy5/main
modules2.rs: add more information to hint
2023-05-17 15:55:13 +02:00
liv
9bfb7055e2 Merge pull request #1517 from rust-lang/all-contributors/add-rb5014
docs: add rb5014 as a contributor for content
2023-05-17 15:54:49 +02:00
allcontributors[bot]
c5fe42089d docs: update .all-contributorsrc [skip ci] 2023-05-17 13:54:40 +00:00
allcontributors[bot]
70cf7698ac docs: update AUTHORS.md [skip ci] 2023-05-17 13:54:39 +00:00
liv
b07680108b Merge pull request #1504 from rb5014/success-hints-feature
feat(main, verify): Show hint(s) after exercise completion
2023-05-17 15:54:24 +02:00
liv
d45ec21b3c Merge pull request #1513 from rust-lang/all-contributors/add-nmay231
docs: add nmay231 as a contributor for content
2023-05-10 10:50:01 +02:00
allcontributors[bot]
0d252636be docs: update .all-contributorsrc [skip ci] 2023-05-10 08:49:45 +00:00
allcontributors[bot]
70da26f649 docs: update AUTHORS.md [skip ci] 2023-05-10 08:49:44 +00:00
liv
b882da1ad4 Merge pull request #1512 from nmay231/main
fix(options3): panic when not matching to avoid false positives
2023-05-10 10:49:36 +02:00
Noah May
3ecb47ff2c fix(options3): panic when not matching to avoid false positives
Closes #1503
2023-05-09 15:13:18 -05:00
Romain Bayle
c44e3025f9 option success_hints added to the struct Watchargs instead of Args 2023-05-02 22:46:41 +02:00
liv
9ffcab07bf Merge pull request #1506 from rust-lang/all-contributors/add-az0977776
docs: add az0977776 as a contributor for content
2023-05-02 11:15:57 +00:00
allcontributors[bot]
583925c085 docs: update .all-contributorsrc [skip ci] 2023-05-02 11:15:49 +00:00
allcontributors[bot]
e631f3c78b docs: update AUTHORS.md [skip ci] 2023-05-02 11:15:48 +00:00
liv
9a6e57eec9 Merge pull request #1471 from az0977776/patch-2
docs: update line numbers in move_semantics2
2023-05-02 11:15:33 +00:00
Aaron Wang
d3fea5f15a Merge branch 'main' into patch-2 2023-05-01 19:10:56 -04:00
Romain Bayle
5d3696a9e6 feat(cli): added success-hints option for the rustlings command
closes #1373
2023-05-01 03:04:06 +02:00
liv
b75d2aa3f4 Merge pull request #1499 from rust-lang/all-contributors/add-esotuvaka
docs: add esotuvaka as a contributor for content
2023-04-28 08:40:25 +00:00
allcontributors[bot]
eb4079c674 docs: update .all-contributorsrc [skip ci] 2023-04-28 08:40:18 +00:00
allcontributors[bot]
72d0c53b33 docs: update AUTHORS.md [skip ci] 2023-04-28 08:40:17 +00:00
liv
6ae0525f7a Merge pull request #1498 from esotuvaka/main
chore: clarified cow owned_no_mutation comments
2023-04-28 08:39:59 +00:00
PiqqiDesigns
c4627e7112 chore: clarified cow owned_no_mutation comments 2023-04-27 15:49:40 -07:00
liv
6d4a980b04 Merge pull request #1491 from rust-lang/all-contributors/add-akgerber
docs: add akgerber as a contributor for content
2023-04-22 13:48:59 +00:00
allcontributors[bot]
545a726252 docs: update .all-contributorsrc [skip ci] 2023-04-22 13:48:42 +00:00
allcontributors[bot]
065cd0170e docs: update AUTHORS.md [skip ci] 2023-04-22 13:48:41 +00:00
liv
a7eeaa3a4b Merge pull request #1484 from akgerber/move2_comment_fix
fix(move_semantics2): fix line number comment
2023-04-22 13:48:23 +00:00
deedy5
e2da663628 Update info.toml
modules2.rs: add more information to hint
2023-04-21 15:51:52 +00:00
lionel-rowe
836134202e feat(options2): better tests for layered_option
The existing test can be solved with the following:

```rs
        while let Some(integer) = optional_integers.pop() {
            assert_eq!(integer.unwrap(), range);
```

Similarly with `expect(...)`, `unwrap_or(0)`, `unwrap_or_default()`, etc. However, none of these solutions use the learning point of stacking `Option<T>`s.

The updated test can _only_ be solved by stacking `Option<T>`s:

```rs
        while let Some(Some(integer)) = optional_integers.pop() {
            assert_eq!(integer, cursor);
```

With the updated test, using `unwrap` or `expect` will panic when it hits the `None` value, and using `unwrap_or` or `unwrap_or_default` will cause the final `assert_eq!(cursor, 0)`  to panic.
2023-04-21 06:05:25 +01:00
Alan Gerber
319a8253ba fix(move_semantics2): fix line number comment
Commit fef8314 added three lines of comments, which left the line
numbers expected to stay unchanged mentioned on line 2 out of date.
2023-04-20 12:15:31 -04:00
liv
fc81bb15fe Merge pull request #1482 from rust-lang/all-contributors/add-smlavine
docs: add smlavine as a contributor for code
2023-04-18 15:54:06 +00:00
allcontributors[bot]
6209e7004e docs: update .all-contributorsrc [skip ci] 2023-04-18 15:51:25 +00:00
allcontributors[bot]
4944488287 docs: update AUTHORS.md [skip ci] 2023-04-18 15:51:24 +00:00
liv
0dc9c33b01 Merge pull request #1480 from smlavine/main
feat: Add "!" command to `rustlings watch`
2023-04-18 15:51:06 +00:00
Sebastian LaVine
a4a5691a7b feat: Add "!" command to rustlings watch 2023-04-16 21:44:08 -04:00
Your Name
352267871c fix: Added some extra tests to validate iterators5 solution
closes: #1387
2023-04-15 17:34:52 +01:00
bean5
15ae83f868 docs: Replace apostrophe (for consistency with other README files) 2023-04-13 20:32:18 -06:00
bean5
e6b1ef2049 docs: Apply fixes that linter noticed 2023-04-13 20:31:59 -06:00
Aaron Wang
8ed2cf7ef5 Update move_semantics2.rs 2023-04-10 22:36:21 -04:00
J.c
8cb5cba775 docs(vecs2): update hints 2023-04-08 10:50:50 +02:00
Aaron Wang
c74e0bfd18 docs: update line numbers in move_semantics2 2023-04-07 01:56:20 -04:00
liv
9fc336c7f7 Merge pull request #1469 from rust-lang/all-contributors/add-stornquist
docs: add stornquist as a contributor for content
2023-04-05 13:11:24 +00:00
allcontributors[bot]
5de7124eee docs: update .all-contributorsrc [skip ci] 2023-04-05 13:11:15 +00:00
allcontributors[bot]
2f33826063 docs: update AUTHORS.md [skip ci] 2023-04-05 13:11:14 +00:00
liv
087e076ec0 Merge pull request #1384 from stornquist/patch-1
fix(move_semantics2): add expected output comment
2023-04-05 13:10:57 +00:00
liv
b39b819725 Merge pull request #1468 from rust-lang/all-contributors/add-alexwh
docs: add alexwh as a contributor for content
2023-04-05 13:10:02 +00:00
allcontributors[bot]
d544bfcd6d docs: update .all-contributorsrc [skip ci] 2023-04-05 13:09:51 +00:00
allcontributors[bot]
c7adaa7d14 docs: update AUTHORS.md [skip ci] 2023-04-05 13:09:50 +00:00
liv
f86fa1e909 Merge pull request #1385 from alexwh/patch-1
chore: update move_semantics4.rs' hint
2023-04-05 13:09:20 +00:00
liv
2285b89aea Merge pull request #1467 from rust-lang/all-contributors/add-ktheory
docs: add ktheory as a contributor for content
2023-04-05 13:07:58 +00:00
allcontributors[bot]
16ca871544 docs: update .all-contributorsrc [skip ci] 2023-04-05 13:06:59 +00:00
allcontributors[bot]
722c7910e4 docs: update AUTHORS.md [skip ci] 2023-04-05 13:06:58 +00:00
liv
ab6aa23cec Merge pull request #1391 from ktheory/ktheory/iter5
docs: clarify instructions on iterators5.rs
2023-04-05 13:06:43 +00:00
liv
5fd3dfe01b Merge pull request #1452 from guoard/markdown-linter
feat(docs): add markdown linter for exercises README.md files
2023-04-05 13:06:17 +00:00
liv
8a7f437641 Merge pull request #1466 from rust-lang/all-contributors/add-poneciak57
docs: add poneciak57 as a contributor for content
2023-04-05 13:05:38 +00:00
allcontributors[bot]
63a467af31 docs: update .all-contributorsrc [skip ci] 2023-04-05 13:05:30 +00:00
allcontributors[bot]
af365f444f docs: update AUTHORS.md [skip ci] 2023-04-05 13:05:29 +00:00
liv
9a9b487abd Merge pull request #1463 from poneciak57/feature/test4_panic
feat: add tests4.rs exercise
2023-04-05 13:05:14 +00:00
poneciak
102d7f3d0e changed comments in tests
also fixed small logical issue in `Rectangle::new()` where u could create rectangle with width or height equals 0
2023-04-05 13:24:14 +02:00
poneciak
c4974ac782 added required changes
- fixed grammar in hint and added more specific link
- added comments in test functions
- changed introduction paragraph
2023-04-05 13:09:13 +02:00
poneciak
27b7579566 created task 2023-04-05 08:18:51 +02:00
liv
01fa21f160 Merge pull request #1461 from rust-lang/all-contributors/add-sagarvora
docs: add sagarvora as a contributor for content
2023-04-02 10:46:50 +00:00
allcontributors[bot]
54d21dc7c1 docs: update .all-contributorsrc [skip ci] 2023-04-02 10:45:43 +00:00
allcontributors[bot]
2f2fd43771 docs: update AUTHORS.md [skip ci] 2023-04-02 10:45:42 +00:00
liv
2ca4ee2a54 Merge pull request #1460 from sagarvora/lifetimes-first
fix: move lifetimes above tests in recommended order
2023-04-02 10:45:28 +00:00
Sagar Vora
b1fb38e73c fix: move lifetimes above tests in recommended order 2023-04-02 12:25:24 +05:30
liv
09dc7058c9 Merge pull request #1456 from rust-lang/all-contributors/add-ahresse
docs: add ahresse as a contributor for content
2023-03-31 13:31:47 +00:00
allcontributors[bot]
75f0ab65d1 docs: update .all-contributorsrc [skip ci] 2023-03-31 13:31:33 +00:00
allcontributors[bot]
391e5d121a docs: update AUTHORS.md [skip ci] 2023-03-31 13:31:32 +00:00
liv
6f84887f60 Merge pull request #1454 from ahresse/ahresse/remove_trailing_spaces
fix: remove trailing spaces
2023-03-31 13:31:16 +00:00
liv
3e44060b5b Merge pull request #1455 from rust-lang/all-contributors/add-keogami
docs: add keogami as a contributor for doc
2023-03-31 13:29:40 +00:00
allcontributors[bot]
84dcd51d37 docs: update .all-contributorsrc [skip ci] 2023-03-31 13:29:30 +00:00
allcontributors[bot]
e185e27273 docs: update AUTHORS.md [skip ci] 2023-03-31 13:29:29 +00:00
liv
e2eb24761f Merge pull request #1453 from keogami/patch-1
Split quick installation commands into two separate blocks
2023-03-31 13:29:16 +00:00
Alexandre ESSE
d7111cb4a3 fix(main.rs): remove trailing spaces 2023-03-31 11:58:15 +02:00
Alexandre ESSE
22bb662d3e fix(exercises): remove trailing spaces 2023-03-31 11:58:15 +02:00
Keogami
8c4a7bea5f docs(README.md): split quick installation commands into two separate code blocks
Having the two quick installation commands in two separate code blocks makes it easy to copy them through the github's `copy to clipboard` button
2023-03-31 02:26:23 +05:30
Ali Afsharzadeh
382e16eb7e feat(docs): add markdown linter for exercises README.md files 2023-03-30 19:53:22 +03:30
liv
362c1b0d11 Merge pull request #1450 from guoard/patch-2
docs(error_handling): resolve markdownlint warnings
2023-03-30 09:19:20 +00:00
Ali Afsharzadeh
1db646474e docs(error_handling): resolve markdown linter warnings 2023-03-29 21:13:27 +03:30
liv
fbec311844 Merge pull request #1447 from rust-lang/all-contributors/add-guoard
docs: add guoard as a contributor for content
2023-03-28 10:27:00 +00:00
allcontributors[bot]
347462d87e docs: update .all-contributorsrc [skip ci] 2023-03-28 10:26:46 +00:00
allcontributors[bot]
99bd7181f9 docs: update AUTHORS.md [skip ci] 2023-03-28 10:26:45 +00:00
liv
92f09dbe81 Merge pull request #1445 from guoard/patch-1
docs(variables): wrap mut keyword with backtick
2023-03-28 10:26:32 +00:00
liv
4b1fe0a1cc Merge pull request #1446 from rust-lang/all-contributors/add-ryanwhitehouse
docs: add ryanwhitehouse as a contributor for content
2023-03-28 10:26:10 +00:00
allcontributors[bot]
78f4d66364 docs: update .all-contributorsrc [skip ci] 2023-03-28 10:25:47 +00:00
allcontributors[bot]
13356e16a3 docs: update AUTHORS.md [skip ci] 2023-03-28 10:25:46 +00:00
liv
e0e0b3f387 Merge pull request #1432 from ryanwhitehouse/main
docs:clarify instructions on hashmaps2.rs
2023-03-28 10:25:31 +00:00
Ali Afsharzadeh
592694036f docs(variables): wrap mut keyword with backtick 2023-03-28 09:58:59 +03:30
liv
b21a4ac12b Merge pull request #1443 from rust-lang/all-contributors/add-VegardMatthey
docs: add VegardMatthey as a contributor for content
2023-03-27 11:31:07 +00:00
allcontributors[bot]
5e43c7aba5 docs: update .all-contributorsrc [skip ci] 2023-03-27 11:30:57 +00:00
allcontributors[bot]
db993899d3 docs: update AUTHORS.md [skip ci] 2023-03-27 11:30:56 +00:00
liv
e2de7b8ae3 Merge pull request #1442 from VegardMatthey/main
docs: fixed a spelling mistake for the hint in exercise iterators2
2023-03-27 11:30:42 +00:00
Vegard Matthey
95e51f384e fixed a spelling mistake in info.toml 2023-03-26 23:25:59 +02:00
liv
4ff38c7bf3 Merge pull request #1441 from rust-lang/all-contributors/add-javihernant
docs: add javihernant as a contributor for content
2023-03-26 13:23:36 +00:00
allcontributors[bot]
faf4d9a888 docs: update .all-contributorsrc [skip ci] 2023-03-26 13:23:19 +00:00
allcontributors[bot]
18a9510048 docs: update AUTHORS.md [skip ci] 2023-03-26 13:23:18 +00:00
liv
2012641610 Merge pull request #1428 from javihernant/changeLtReadme
change order of references in README.md
2023-03-26 13:23:02 +00:00
liv
864e741dd8 reword hashmaps2 a bit more 2023-03-26 15:21:21 +02:00
liv
22eb7e3847 Merge pull request #1440 from rust-lang/all-contributors/add-navicore
docs: add navicore as a contributor for content
2023-03-26 12:50:45 +00:00
allcontributors[bot]
766b83b513 docs: update .all-contributorsrc [skip ci] 2023-03-26 12:50:14 +00:00
allcontributors[bot]
c28b78fae5 docs: update AUTHORS.md [skip ci] 2023-03-26 12:50:13 +00:00
liv
6d4a87227d Merge pull request #1437 from navicore/errors2-comment-error
correct comments in errors2.rs
2023-03-26 12:49:59 +00:00
liv
65b8770ce9 Merge pull request #1438 from tfpk/patch-2
feat(lifetimekata): Add info about Lifetimekata project
2023-03-26 12:49:26 +00:00
liv
2ef6fb66ac Merge pull request #1439 from rust-lang/all-contributors/add-eugkhp
docs: add eugkhp as a contributor for tool
2023-03-26 12:48:21 +00:00
allcontributors[bot]
82f72c3ec6 docs: update .all-contributorsrc [skip ci] 2023-03-26 12:48:10 +00:00
allcontributors[bot]
efd4d83731 docs: update AUTHORS.md [skip ci] 2023-03-26 12:48:09 +00:00
liv
8bab260587 Merge pull request #1435 from eugkhp/update-deps
cargo update to resolve #1430
2023-03-26 12:47:45 +00:00
Tom Kunc
d5449c992e feat(lifetimekata): Add info about Lifetimekata project 2023-03-25 20:00:28 +11:00
Ed Sweeney
4160b06c6c correct comments in errors2.rs 2023-03-24 21:52:58 -07:00
Eugene
6e9ed48f42 cargo update for to resolve #1430 2023-03-24 16:48:11 +01:00
Ryan Whitehouse
5687676014 docs:clarify instructions on hashmaps2.rs 2023-03-20 15:19:36 +01:00
hxztnxt
5d91c86cf2 change order of references in README.md 2023-03-16 00:56:15 +01:00
liv
9acefe8b3a Merge pull request #1425 from rust-lang/all-contributors/add-adamhb123
docs: add adamhb123 as a contributor for content
2023-03-14 11:15:30 +01:00
allcontributors[bot]
06fac0e570 docs: update .all-contributorsrc [skip ci] 2023-03-14 10:15:22 +00:00
allcontributors[bot]
e8b44a39e0 docs: update AUTHORS.md [skip ci] 2023-03-14 10:15:21 +00:00
liv
a55c8dc1a8 Merge pull request #1418 from adamhb123/vecs2.rs-naming-suggestion
Rename iteration var names in vec2.rs for clarity
2023-03-14 11:15:07 +01:00
Adam Brewer
7bab78c66d Rename iteration var names in vec2.rs for clarity
Resolves #1417
2023-03-10 14:13:06 -05:00
liv
5c5cd4c658 Merge pull request #1416 from rust-lang/all-contributors/add-Nagidal
docs: add Nagidal as a contributor for content
2023-03-10 18:03:30 +01:00
allcontributors[bot]
53a8318f32 docs: update .all-contributorsrc [skip ci] 2023-03-10 17:03:21 +00:00
allcontributors[bot]
31b208248b docs: update AUTHORS.md [skip ci] 2023-03-10 17:03:20 +00:00
liv
9c515c7863 Merge pull request #1415 from Nagidal/improve-hint-strings2
improve hint for strings2, #1407
2023-03-10 18:03:06 +01:00
Sven Siegmund
ec86b60e70 improve hint for strings2, #1407 2023-03-10 17:58:03 +01:00
liv
7f1754ecc5 release: 5.4.1 2023-03-10 17:39:59 +01:00
liv
e4971ec7b3 Merge pull request #1414 from rust-lang/all-contributors/add-MahdiBM
docs: add MahdiBM as a contributor for tool
2023-03-10 17:28:22 +01:00
allcontributors[bot]
ec974f5dac docs: update .all-contributorsrc [skip ci] 2023-03-10 16:28:13 +00:00
allcontributors[bot]
7b2bfda37f docs: update AUTHORS.md [skip ci] 2023-03-10 16:28:12 +00:00
liv
2f34370f2f Merge pull request #1402 from MahdiBM/patch-1
Better error message when failing
2023-03-10 17:27:53 +01:00
liv
94799b1e98 Merge pull request #1413 from rust-lang/all-contributors/add-nidhalmessaoudi
docs: add nidhalmessaoudi as a contributor for code
2023-03-10 11:51:36 +01:00
allcontributors[bot]
d334e0c66c docs: update .all-contributorsrc [skip ci] 2023-03-10 10:51:24 +00:00
allcontributors[bot]
3da5816db2 docs: update AUTHORS.md [skip ci] 2023-03-10 10:51:23 +00:00
liv
c8273e06c6 Merge pull request #1404 from nidhalmessaoudi/master
Always showing correct progress percentages.
2023-03-10 11:51:08 +01:00
liv
ff50159a3d fix: remove repl.it support for now
It stopped working and needs too much manual fixing, until someone
comes along to fix it, it's not great to have in the README section.

Closes #1352.
2023-03-03 21:27:57 +01:00
Nidhal Messaoudi
34aafa82f9 Main exercises 2023-02-27 21:37:25 +01:00
Nidhal Messaoudi
278a1f103b Original exercises 2023-02-27 21:33:28 +01:00
Nidhal Messaoudi
1acbbb6d43 Fixing the progress percentage 2023-02-27 21:17:45 +01:00
Nidhal Messaoudi
e3a20b8bc8 Learning about vectors 2023-02-27 21:16:40 +01:00
Nidhal Messaoudi
f7678b4a9e Learning about primitive data types 2023-02-27 12:57:40 +01:00
Nidhal Messaoudi
52ed5dbcf9 First quiz and its related modules 2023-02-26 17:28:24 +01:00
Mahdi Bahrami
6c5ba7cc01 Better error message when failing 2023-02-26 19:30:57 +03:30
liv
36e66b545e Merge pull request #1396 from 0lhi/main
fix(macros4.rs): Add rustfmt::skip to prevent auto-fix.
2023-02-26 13:10:24 +01:00
liv
0e9966d6a4 Merge pull request #1397 from crd477/patch-1
rustfmt
2023-02-26 13:10:04 +01:00
liv
75fbf7a8f3 Merge pull request #1401 from rust-lang/all-contributors/add-mdmundo
docs: add mdmundo as a contributor for infra
2023-02-26 13:09:26 +01:00
liv
e700a3cc4d Merge branch 'main' into all-contributors/add-mdmundo 2023-02-26 13:09:20 +01:00
allcontributors[bot]
eb7f21df04 docs: update .all-contributorsrc [skip ci] 2023-02-26 12:08:07 +00:00
allcontributors[bot]
ac9c1adb75 docs: update AUTHORS.md [skip ci] 2023-02-26 12:08:06 +00:00
liv
d06f7bf1ff Merge pull request #1400 from rust-lang/all-contributors/add-eroullit
docs: add eroullit as a contributor for infra
2023-02-26 13:07:02 +01:00
allcontributors[bot]
7f06bb5fa7 docs: update AUTHORS.md [skip ci] 2023-02-26 12:06:57 +00:00
allcontributors[bot]
0ad8eec3eb docs: update .all-contributorsrc [skip ci] 2023-02-26 12:06:51 +00:00
allcontributors[bot]
3c841c4685 docs: update AUTHORS.md [skip ci] 2023-02-26 12:06:50 +00:00
liv
d5b647d5ab Merge pull request #1399 from eroullit/codespaces
Codespaces ❤️ Rustlings
2023-02-26 13:05:05 +01:00
Emmanuel Roullit
86f8fa8e6e Update README.md
Fix refs from master to main
2023-02-25 17:57:34 +01:00
Emmanuel Roullit
351e4e2460 Update devcontainer.json 2023-02-25 17:56:00 +01:00
Emmanuel Roullit
1afc7ed8c5 Update README.md
Create Rustlings Codespace in one click
2023-02-25 17:20:31 +01:00
Emmanuel Roullit
fcadbfc70d Merge branch 'rust-lang:main' into codespaces 2023-02-25 17:11:43 +01:00
Chad Dougherty
8c88f769b6 rustfmt
rustfmt converts "main ()" -> "main()"
2023-02-24 08:51:03 -05:00
0lhi
de24536187 macros4.rs: Add rustfmt::skip to prevent auto-fix.
The `macros4.rs` challenge can automatically be solved by rustfmt without the user noticing.

Adding `#[rustfmt::skip]` above the `macro_rules!` line fixes this issue.
2023-02-24 01:43:23 +01:00
Aaron Suggs
1ac66f372b docs: clarify instructions on iterators5.rs
I changed the sentence that referenced the imperative implementation in iterators5.rs.

That implementation was already removed and replaced with `todo!()`
2023-02-21 09:45:59 -05:00
liv
701b4bef51 Merge pull request #1386 from cyril-marpaud/cmp_arc1
refactor(arc1): improve readability by avoiding implicit dereference
2023-02-19 12:34:52 +01:00
Cyril MARPAUD
045d86aa42 refactor(arc1): improve readability by avoiding implicit dereference 2023-02-18 21:38:43 +01:00
Alex
89069f78b1 chore: update move_semantics4.rs' hint
after #144, the signature doesn't need changing anymore
2023-02-18 19:26:40 +00:00
Sebastian Törnquist
fef8314d3d fix(move_semantics2): add expected output comment
You can easily get this to compile with `vec0` being `[]` and `vec1` being `[22, 44, 66, 88]`
2023-02-18 18:43:34 +01:00
liv
bec7be05f5 Merge pull request #1383 from rust-lang/all-contributors/add-shgew
docs: add shgew as a contributor for content
2023-02-18 14:26:58 +01:00
allcontributors[bot]
d42ac49de4 docs: update .all-contributorsrc [skip ci] 2023-02-18 13:26:38 +00:00
allcontributors[bot]
1272d0b990 docs: update AUTHORS.md [skip ci] 2023-02-18 13:26:37 +00:00
liv
cf86e734f2 Merge pull request #1381 from shgew/fix/errors5-comment
fix: unify undisclosed type notation in errors5.rs
2023-02-18 14:26:23 +01:00
Gleb Shevchenko
238a496af5 fix: unify undisclosed type notation in errors5.rs 2023-02-18 14:09:04 +01:00
liv
a3670d267b Merge pull request #1380 from rust-lang/all-contributors/add-Anush008
docs: add Anush008 as a contributor for doc
2023-02-17 19:04:09 +01:00
allcontributors[bot]
65f05f0541 docs: update .all-contributorsrc [skip ci] 2023-02-17 18:03:59 +00:00
allcontributors[bot]
338c95f120 docs: update AUTHORS.md [skip ci] 2023-02-17 18:03:58 +00:00
liv
2b9dc4424e Merge pull request #1379 from Anush008/patch-1
Removed verbose instructions from the uninstall section
2023-02-17 19:03:41 +01:00
Anush
ef0b25c392 Removed verbose instructions from the uninstall section 2023-02-17 22:51:42 +05:30
liv
6f0e5d13ed Merge pull request #1372 from rust-lang/all-contributors/add-black-puppydog
docs: add black-puppydog as a contributor for content
2023-02-15 14:17:07 +01:00
allcontributors[bot]
046a18cd16 docs: update .all-contributorsrc [skip ci] 2023-02-15 13:16:59 +00:00
allcontributors[bot]
e1e67d0d41 docs: update AUTHORS.md [skip ci] 2023-02-15 13:16:58 +00:00
liv
216d08d013 Merge pull request #1244 from black-puppydog/cow-rework
refactor(cow1):  replace main with tests
2023-02-15 14:16:22 +01:00
Daan Wynen
bbdc5c6039 refactor(cow1): replace main with tests
Following the discussion in #1195 this is the best I could come up with.
The issue for me (and apparently a few other learners) was that the code
needed to complete the exercise was not _missing_, but was rather there
but wrong.

In the end, what made the difference between this exercise and others
(for me) was that in this exercise I was supposed to learn what to
*expect* of an output. So I think it makes sense here to let the learner
modify the tests and not the code itself.

Fixes #1195

Signed-off-by: Daan Wynen <black.puppydog@gmx.de>

# Conflicts:
#	info.toml
2023-02-14 20:37:33 +01:00
liv
149e0c8ac2 Merge pull request #1370 from magnusrodseth/main
docs: add link to docs about `iter_mut` and `map`
2023-02-13 11:01:48 +01:00
magnusrodseth
48ce9d2fd8 docs: add link to docs about iter_mut and map 2023-02-12 18:26:13 +01:00
liv
fc9fb536ca release: 5.4.0 2023-02-12 18:01:48 +01:00
liv
4c7e561740 Merge pull request #1369 from rust-lang/all-contributors/add-grzegorz-zur
docs: add grzegorz-zur as a contributor for content
2023-02-12 16:55:30 +01:00
allcontributors[bot]
bf0fa8ee64 docs: update .all-contributorsrc [skip ci] 2023-02-12 15:54:57 +00:00
allcontributors[bot]
d3ed9ce2f6 docs: update AUTHORS.md [skip ci] 2023-02-12 15:54:56 +00:00
liv
f123cb2777 Merge pull request #1228 from grzegorz-zur/patch-1
Removed unnecessary use statement
2023-02-12 16:54:43 +01:00
liv
dc3bf2ea30 Merge pull request #1368 from rust-lang/all-contributors/add-platformer
docs: add platformer as a contributor for content
2023-02-12 16:50:26 +01:00
allcontributors[bot]
f3773660b0 docs: update .all-contributorsrc [skip ci] 2023-02-12 15:50:18 +00:00
allcontributors[bot]
18843cf62e docs: update AUTHORS.md [skip ci] 2023-02-12 15:50:17 +00:00
liv
7be4fd891d Merge pull request #1305 from platformer/issue1298
fix(threads1): make program panic if threads are not joined
2023-02-12 16:50:03 +01:00
liv
b66e2e9b95 Merge pull request #1367 from rust-lang/all-contributors/add-kawaiiPlat
docs: add kawaiiPlat as a contributor for content
2023-02-12 15:52:07 +01:00
allcontributors[bot]
2aad5360d4 docs: update .all-contributorsrc [skip ci] 2023-02-12 14:52:00 +00:00
allcontributors[bot]
e8683274ff docs: update AUTHORS.md [skip ci] 2023-02-12 14:51:59 +00:00
liv
b3de1b77bf Merge pull request #1318 from kawaiiPlat/q2-minor-grammar
minor grammar tweak for quiz 2
2023-02-12 15:51:42 +01:00
liv
957522a492 feat(intro1): add note on rust-analyzer usage 2023-02-12 15:47:58 +01:00
liv
ac050fb7ce Merge pull request #1366 from rust-lang/all-contributors/add-alexandergill
docs: add alexandergill as a contributor for code
2023-02-12 15:43:16 +01:00
allcontributors[bot]
88a92b311c docs: update .all-contributorsrc [skip ci] 2023-02-12 14:43:08 +00:00
allcontributors[bot]
acd2164c85 docs: update AUTHORS.md [skip ci] 2023-02-12 14:43:07 +00:00
liv
890d6549de Merge pull request #1364 from alexandergill/fix-install-script
Fix `bash: line 105: v1[$i]: unbound variable` in install script
2023-02-12 15:42:49 +01:00
Alexander Gill
0b119339eb fix(installation): bump MinRustVersion to 1.58
this is the earliest minor version that compiled without errors
2023-02-11 23:30:35 +00:00
Alexander Gill
4bdd3c036b fix(installation): loop to max_len-1
avoid `i` going outside range of array indices
2023-02-11 23:18:34 +00:00
liv
0ea42f60bd Merge pull request #1356 from rust-lang/all-contributors/add-wjwrh
docs: add wjwrh as a contributor for code
2023-02-05 11:51:57 +01:00
allcontributors[bot]
72fff8d51a docs: update .all-contributorsrc [skip ci] 2023-02-05 10:51:50 +00:00
allcontributors[bot]
ff44be9dcd docs: update AUTHORS.md [skip ci] 2023-02-05 10:51:49 +00:00
liv
23c3620001 Merge pull request #1355 from wjwrh/main
Fix the problem of different edition between rustc and rust-analyzer
2023-02-05 11:51:35 +01:00
wjwrh
1721ddc231 Fix the problem of different edition between rustc and rust-analyzer 2023-02-05 14:10:23 +08:00
liv
ce7ffcd8e9 Merge pull request #1349 from rust-lang/all-contributors/add-kevwan
docs: add kevwan as a contributor for content
2023-01-26 20:55:22 +01:00
allcontributors[bot]
c952604308 docs: update .all-contributorsrc [skip ci] 2023-01-26 19:55:14 +00:00
allcontributors[bot]
a1b2964869 docs: update AUTHORS.md [skip ci] 2023-01-26 19:55:13 +00:00
liv
5faa0badef Merge pull request #1347 from kevwan/patch-1
chore: fix prompt error for exercise #80 (rc1.rs)
2023-01-26 20:54:54 +01:00
Kevin Wan
4771a7b9e7 chore: fix prompt error
Missed a blank line, which causes the prompt incorrect like below:

```rust
You can keep working on this exercise,
or jump into the next one by removing the `I AM NOT DONE` comment:

 6 |  // Make this code compile by using the proper Rc primitives to express that the sun has multiple owners.
 7 |  
 8 |  // I AM NOT DONE
 9 |  use std::rc::Rc;
```
2023-01-23 12:16:51 +08:00
liv
259b434f20 Merge pull request #1338 from rust-lang/all-contributors/add-cloppingemu
docs: add cloppingemu as a contributor for code
2023-01-11 12:25:45 +01:00
allcontributors[bot]
d58c97bd21 docs: update .all-contributorsrc [skip ci] 2023-01-11 11:25:36 +00:00
allcontributors[bot]
d05a817f3b docs: update AUTHORS.md [skip ci] 2023-01-11 11:25:35 +00:00
liv
2b30cec974 Merge pull request #1319 from cloppingemu/main
fix(verify): progress bar percent now updates with the number of files verified
2023-01-11 12:25:09 +01:00
liv
6ef284bb1a Merge pull request #1337 from rust-lang/all-contributors/add-h4x5p4c3
docs: add h4x5p4c3 as a contributor for content
2023-01-11 12:23:21 +01:00
allcontributors[bot]
ac839c267b docs: update .all-contributorsrc [skip ci] 2023-01-11 11:23:08 +00:00
allcontributors[bot]
3ed1e16c78 docs: update AUTHORS.md [skip ci] 2023-01-11 11:23:07 +00:00
liv
c28c661deb Merge pull request #1336 from h4x5p4c3/main
minor changes to hint
2023-01-11 12:22:52 +01:00
h4x5p4c3
6b04848d41 minor changes to hint 2023-01-11 00:23:21 +05:30
liv
c5898ac6b7 Merge pull request #1326 from tklauser/clippy1-typo
Fix typo in clippy1 hint
2023-01-05 17:41:43 +01:00
Tobias Klauser
7c4a3a2af6 Fix typo in clippy1 hint 2023-01-05 17:14:49 +01:00
liv
0d30dce26d Merge pull request #1325 from rust-lang/all-contributors/add-AxolotlTears
docs: add AxolotlTears as a contributor for code
2023-01-05 15:28:11 +01:00
allcontributors[bot]
6c170c2c21 docs: update .all-contributorsrc [skip ci] 2023-01-05 14:28:02 +00:00
allcontributors[bot]
4179317f37 docs: update AUTHORS.md [skip ci] 2023-01-05 14:28:01 +00:00
liv
5bcd2cee1d Merge pull request #1320 from AxolotlTears/main
Decrease watch delay
2023-01-05 15:27:35 +01:00
liv
29ecee8cc6 Merge pull request #1324 from rust-lang/all-contributors/add-0xMySt1c
docs: add 0xMySt1c as a contributor for tool
2023-01-05 15:24:04 +01:00
allcontributors[bot]
f67a2b2535 docs: update .all-contributorsrc [skip ci] 2023-01-05 14:21:45 +00:00
allcontributors[bot]
33e0c73df7 docs: update AUTHORS.md [skip ci] 2023-01-05 14:21:44 +00:00
liv
c28c0eb818 Merge pull request #1322 from 0xMySt1c/update_extension
update rust language extension to rust-analyzer
2023-01-05 15:21:27 +01:00
0xMySt1c
8722172049 update rust language extension to rust-analyzer 2023-01-04 14:59:18 -05:00
TenzinRabgy
8e36256eac chore(watch): decrease watch delay
closes #1215
2023-01-04 04:49:51 -05:00
himanshu soni
951826e6b5 fix(verify): progress bar proportion now updates with the number of files verified 2023-01-03 23:54:01 +09:30
Jarrod Sanders
57834e9f8c Minor Grammar 2023-01-03 09:22:52 -05:00
liv
915a59e514 Merge pull request #1317 from rust-lang/all-contributors/add-tklauser
docs: add tklauser as a contributor for code
2023-01-03 14:19:53 +01:00
allcontributors[bot]
b985b1d6ea docs: update .all-contributorsrc [skip ci] 2023-01-03 13:19:33 +00:00
allcontributors[bot]
ceb03cfb2c docs: update AUTHORS.md [skip ci] 2023-01-03 13:19:32 +00:00
liv
b8d4bb1f13 Merge pull request #1316 from tklauser/fix-fn-typo
Fix typo in method name
2023-01-03 14:19:17 +01:00
Tobias Klauser
1b9d4bbf72 Fix typo in method name 2023-01-03 14:14:07 +01:00
liv
c6842938c9 Merge pull request #1315 from rust-lang/all-contributors/add-dbarrosop
docs: add dbarrosop as a contributor for infra
2023-01-03 10:21:49 +01:00
allcontributors[bot]
2be582fb27 docs: update .all-contributorsrc [skip ci] 2023-01-03 09:21:41 +00:00
allcontributors[bot]
7ed0474364 docs: update AUTHORS.md [skip ci] 2023-01-03 09:21:40 +00:00
liv
142633533e Merge pull request #1294 from dbarrosop/nix-darwin
fix nix environment
2023-01-03 10:20:47 +01:00
David Barroso
e6bc13ff04 added common cargoBuildInputs to all flake outputs 2023-01-03 08:26:12 +01:00
liv
49bbeeefae Merge pull request #1314 from rust-lang/all-contributors/add-seporterfield
docs: add seporterfield as a contributor for content
2023-01-02 10:52:23 +01:00
allcontributors[bot]
cb5371f86f docs: update .all-contributorsrc [skip ci] 2023-01-02 09:52:15 +00:00
allcontributors[bot]
3001f1ae02 docs: update AUTHORS.md [skip ci] 2023-01-02 09:52:14 +00:00
liv
7e98f67df8 Merge pull request #1313 from seporterfield/reorder-exercises
Reorder exercises
2023-01-02 10:51:50 +01:00
seporterfield
a5429d59f9 updated file paths for iterators, smart_pointers 2023-01-01 02:46:40 +01:00
seporterfield
9860976af9 added existing chapter for clippy to mapping
It's real! https://doc.rust-lang.org/book/appendix-04-useful-development-tools.html
2023-01-01 02:34:58 +01:00
seporterfield
b2b6e6900f reformatted exercise->chapter mapping
Added and removed rows according to changes to exercise order and grouping.
2023-01-01 02:29:45 +01:00
seporterfield
66eaaf7b6e fixed formatting 2023-01-01 02:17:53 +01:00
seporterfield
3fad2a9c83 gave smart_pointers its own README.md 2023-01-01 02:17:23 +01:00
seporterfield
8405a61b07 moved iterator exercises 2023-01-01 02:02:49 +01:00
seporterfield
e3e298cfa2 moved iterator exercises 2023-01-01 02:02:15 +01:00
seporterfield
0f02a9b9af moved iterator exercises 2023-01-01 02:00:36 +01:00
seporterfield
5b0d587c22 moved iterator exercises 2023-01-01 01:59:35 +01:00
seporterfield
e9dc52c2d3 moved iterator exercises 2023-01-01 01:58:57 +01:00
seporterfield
a0c5a892d3 refactoring standard_library_types as iterators 2023-01-01 01:58:04 +01:00
seporterfield
a8fd315e09 moved rc to smart_pointers 2023-01-01 01:52:47 +01:00
seporterfield
e8c4aab643 moved cow to smart_pointers 2023-01-01 01:52:05 +01:00
seporterfield
c3bab88fda moved box to smart_pointers 2023-01-01 01:51:27 +01:00
seporterfield
cf1ae884a1 Merge pull request #1 from seporterfield/patch-1
move arc to smart_pointers
2023-01-01 01:50:14 +01:00
seporterfield
05592acf40 move arc to smart_pointers 2023-01-01 01:44:47 +01:00
seporterfield
cb79be921d reordered smart pointer exercises
Switched rc and arc so rc comes first, since arc is, like the name implies, atomic rc. This gives the exercises a more logical progression.
Moved all smart pointer exercises (box, rc, arc, cow) under threads into their own section. Threads are used in the smart pointer exercises, so they should be introduced first.
2023-01-01 01:32:38 +01:00
liv
6cee997266 Merge pull request #1311 from rust-lang/all-contributors/add-HerschelW
docs: add HerschelW as a contributor for content
2022-12-30 16:53:05 +01:00
allcontributors[bot]
6367697d92 docs: update .all-contributorsrc [skip ci] 2022-12-30 15:52:50 +00:00
allcontributors[bot]
25fc7814cc docs: update AUTHORS.md [skip ci] 2022-12-30 15:52:49 +00:00
liv
69e8a35fd1 Merge pull request #1310 from HerschelW/enums3_chore
chore: update enums3.rs addressing extra parentheses usage with tuples
2022-12-30 16:52:29 +01:00
HerschelW
2f821aa30d chore: update enums3.rs addressing extra parentheses usage with tuples 2022-12-30 08:14:13 -06:00
liv
f9f07bee09 Merge pull request #1304 from generalmimon/hints-rust-capitalize
chore: "rust" -> "Rust" in exercise hints
2022-12-28 10:59:02 +01:00
platformer
7e4ce38681 fix(threads1): make program panic if threads are not joined
closes #1298
2022-12-26 02:25:43 -06:00
Petr Pucil
4303717951 chore: "rust" -> "Rust" in exercise hints 2022-12-25 18:02:37 +01:00
liv
32b234c9f0 chore: update changelog 2022-12-23 17:09:04 +01:00
liv
9ad884aadb chore: bump version 2022-12-23 16:55:42 +01:00
liv
40b1b07915 fix(enums3): add extra tuple comment 2022-12-23 16:47:48 +01:00
liv
31469560ec Merge pull request #1303 from rust-lang/all-contributors/add-tkburis
docs: add tkburis as a contributor for content
2022-12-23 16:44:22 +01:00
allcontributors[bot]
5e583770f7 docs: update .all-contributorsrc [skip ci] 2022-12-23 15:44:15 +00:00
allcontributors[bot]
130e57ec60 docs: update AUTHORS.md [skip ci] 2022-12-23 15:44:14 +00:00
liv
4ede64b729 Merge pull request #1279 from tkburis/main
Minor changes
2022-12-23 16:44:02 +01:00
liv
4521aed23b Merge pull request #1293 from tysonliddell/fix_self_parameter
fix: Remove superfluous &self indirection
2022-12-23 16:22:51 +01:00
liv
4c3a00b5cd Merge pull request #1301 from williamwebb/williamwebb-fix(hashmap3)-typo
fix(hashmaps3): fix typo in todo hint
2022-12-23 16:16:59 +01:00
liv
e0eef0e190 docs: add note about powershell compat
Closes #1299.
2022-12-23 16:16:24 +01:00
William Webb
e519b5079e fix(hashmaps3): fix typo in todo hint 2022-12-20 21:17:32 -06:00
David Barroso
b2df015fe6 when generating lsp config use RUST_SRC_PATH if set 2022-12-10 14:05:44 +01:00
David Barroso
1ce671528e add missing RUST_SRC_PATH 2022-12-10 13:57:26 +01:00
David Barroso
3d693634b5 fix nix build on Darwin 2022-12-10 13:23:15 +01:00
Tyson Liddell
71873e676f fix: Remove superfluous &self indirection 2022-12-09 20:49:10 +00:00
Emmanuel Roullit
b653d4848a doc: add hint on how to create codespace
Signed-off-by: Emmanuel Roullit <emmanuel.roullit@gmail.com>
2022-12-01 16:15:13 +01:00
Emmanuel Roullit
4972bede48 dev: source cargo env files to find rustup
Signed-off-by: Emmanuel Roullit <emmanuel.roullit@gmail.com>
2022-12-01 14:30:03 +01:00
Emmanuel Roullit
f94f365e14 dev: add basic devcontainer settings file
Theses settings files are the base needed to declare and
bootstrap development environment on codespaces

Signed-off-by: Emmanuel Roullit <emmanuel.roullit@gmail.com>
2022-12-01 14:15:35 +01:00
TK Buristrakul
db53dbc126 chore: tidied up unmatched backticks 2022-11-24 19:41:25 +00:00
TK Buristrakul
a315f2fefb chore: added more descriptive TODOs 2022-11-24 19:39:54 +00:00
TK Buristrakul
be0b7e084e chore: minor change in comment 2022-11-24 19:20:59 +00:00
liv
e3af483fa6 Merge pull request #1276 from rust-lang/all-contributors/add-craymel
docs: add craymel as a contributor for content
2022-11-19 00:35:59 +01:00
allcontributors[bot]
a8033e0193 docs: update .all-contributorsrc [skip ci] 2022-11-18 23:35:52 +00:00
allcontributors[bot]
e8ef4fe5d6 docs: update AUTHORS.md [skip ci] 2022-11-18 23:35:51 +00:00
liv
cea60a2eb9 Merge pull request #1273 from craymel/fix-structs3-hint
fix: Update structs3 hint
2022-11-19 00:35:08 +01:00
craymel
2ceb59a11d fix: Update structs3 hint 2022-11-18 23:38:27 +11:00
liv
97e3c419aa Merge pull request #1263 from rust-lang/all-contributors/add-MoritzBoehme
docs: add MoritzBoehme as a contributor for code
2022-11-12 16:45:24 +01:00
allcontributors[bot]
28d78e288b docs: update .all-contributorsrc [skip ci] 2022-11-12 15:45:16 +00:00
allcontributors[bot]
43c049df75 docs: update AUTHORS.md [skip ci] 2022-11-12 15:45:16 +00:00
liv
0c05318237 Merge pull request #1262 from rust-lang/all-contributors/add-winterqt
docs: add winterqt as a contributor for code
2022-11-12 16:44:44 +01:00
allcontributors[bot]
78e2685d5f docs: update .all-contributorsrc [skip ci] 2022-11-12 15:44:32 +00:00
allcontributors[bot]
ef3ef82057 docs: update AUTHORS.md [skip ci] 2022-11-12 15:44:31 +00:00
liv
d3f81b6e40 Merge pull request #922 from MoritzBoehme/feat/add-nix-flake
feat: Add flake.nix for nix users
2022-11-12 16:44:10 +01:00
mokou
2e1630c712 chore: style fixes 2022-11-11 16:12:09 +01:00
liv
4a60b7b2e3 Merge pull request #1260 from rust-lang/all-contributors/add-mfurak
docs: add mfurak as a contributor for content
2022-11-07 15:14:29 +01:00
allcontributors[bot]
70f9f08d2c docs: update .all-contributorsrc [skip ci] 2022-11-07 14:14:21 +00:00
allcontributors[bot]
6413f5b5d4 docs: update AUTHORS.md [skip ci] 2022-11-07 14:14:20 +00:00
liv
82b79aac2f Merge pull request #1259 from mfurak/format-errors5
style: format errors5 & errors6 with rustfmt
2022-11-07 15:14:06 +01:00
mfurak
152193b459 style: format errors6 with rustfmt 2022-11-06 20:42:17 +01:00
mfurak
d01ce8304e style: format errors5 with rustfmt 2022-11-06 20:32:43 +01:00
liv
8b0507cac8 Merge pull request #1248 from rust-lang/all-contributors/add-tfpk
docs: add tfpk as a contributor for content
2022-10-26 10:50:07 +02:00
allcontributors[bot]
a0b10af1a3 docs: update .all-contributorsrc [skip ci] 2022-10-26 08:49:53 +00:00
allcontributors[bot]
a2134d70c6 docs: update AUTHORS.md [skip ci] 2022-10-26 08:49:52 +00:00
liv
7380e43f28 Merge pull request #1246 from tfpk/patch-1
feat(macros-readme): Add link to MacroKata
2022-10-26 10:49:39 +02:00
liv
24da5b358f Merge pull request #1242 from aaarkid/patch-1
fix: Revert deref change
2022-10-26 10:44:40 +02:00
Moritz Böhme
8e0f5bf125 feat: Add flake.nix for nix users
Co-authored-by: Winter <winter@winter.cafe>
2022-10-25 19:37:48 +02:00
Tom Kunc
da995b24eb feat(macros-readme): Add link to MacroKata 2022-10-24 13:57:44 +11:00
Arkid
623161e50d fix: Revert deref change
Revert the addition of a deref in PR #1192 by me, which should not be there.

Apologies for the inconvenience caused.
2022-10-21 02:45:31 +02:00
liv
b17295b36f Merge pull request #1239 from rust-lang/all-contributors/add-aaarkid
docs: add aaarkid as a contributor for content
2022-10-18 11:39:56 +02:00
allcontributors[bot]
ee84131171 docs: update .all-contributorsrc [skip ci] 2022-10-18 09:39:50 +00:00
allcontributors[bot]
a204524897 docs: update AUTHORS.md [skip ci] 2022-10-18 09:39:49 +00:00
liv
49a101b189 Merge pull request #1192 from aaarkid/patch-1
fix: Add a deref in the test code
2022-10-18 11:39:35 +02:00
liv
53b8715ae3 Merge pull request #1238 from rust-lang/all-contributors/add-mvanschellebeeck
docs: add mvanschellebeeck as a contributor for content
2022-10-18 11:38:10 +02:00
allcontributors[bot]
61c086b242 docs: update .all-contributorsrc [skip ci] 2022-10-18 09:38:02 +00:00
allcontributors[bot]
5e6207bb90 docs: update AUTHORS.md [skip ci] 2022-10-18 09:38:01 +00:00
liv
572dd2e9f3 Merge pull request #1236 from mvanschellebeeck/main
style: explicitly use Arc::clone
2022-10-18 11:37:44 +02:00
Matthew Van Schellebeeck
ccd73c0a81 style: explicitly use Arc::clone 2022-10-17 22:25:28 -05:00
liv
b3322e36ae Merge pull request #1234 from rust-lang/all-contributors/add-azzamsa
docs: add azzamsa as a contributor for code
2022-10-14 10:30:55 +01:00
allcontributors[bot]
3cb9825033 docs: update .all-contributorsrc [skip ci] 2022-10-14 09:30:48 +00:00
allcontributors[bot]
eea039b025 docs: update AUTHORS.md [skip ci] 2022-10-14 09:30:47 +00:00
liv
587e2d6dcd Merge pull request #1220 from azzamsa/percentage
feat(verify): add progress percentage in watch mode
2022-10-14 10:30:32 +01:00
liv
94831a0d54 Merge pull request #1233 from rust-lang/all-contributors/add-nyurik
docs: add nyurik as a contributor for code
2022-10-14 10:26:58 +01:00
allcontributors[bot]
8b251a202f docs: update .all-contributorsrc [skip ci] 2022-10-14 09:26:51 +00:00
allcontributors[bot]
c96fbc7180 docs: update AUTHORS.md [skip ci] 2022-10-14 09:26:50 +00:00
liv
22467b483b Merge pull request #1231 from nyurik/inline-format-args
Apply uninlined-format-args clippy lint
2022-10-14 10:26:34 +01:00
azzamsa
68388e5d4f feat(verify): add progress percentage in watch mode 2022-10-14 05:28:49 +07:00
Yuri Astrakhan
2940ad059d Apply uninlined-format-args clippy lint
This lint should also be applied to the excersies,
but I am not certain how to run it for all non-crate individual files.

To re-run:

```
rustup run nightly cargo clippy --fix -- -A clippy::all -W clippy::uninlined_format_args
```
2022-10-12 16:43:07 -04:00
liv
56a4f1680d Merge pull request #1230 from rust-lang/all-contributors/add-bhbuehler
docs: add bhbuehler as a contributor for content
2022-10-12 15:51:33 +01:00
allcontributors[bot]
a50dcc9728 docs: update .all-contributorsrc [skip ci] 2022-10-12 14:51:22 +00:00
allcontributors[bot]
08df6224af docs: update AUTHORS.md [skip ci] 2022-10-12 14:51:21 +00:00
liv
6e42eede54 Merge pull request #1229 from bhbuehler/docs-options1-fix_and_clarify_24_hr_time_instruction
docs(options1): fix and clarify 24 hour time instruction
2022-10-12 15:51:06 +01:00
bhbuehler
c157c53983 docs(options1): fix and clarify 24 hour time instruction 2022-10-11 12:05:37 -05:00
Grzegorz Żur
da6178bdc6 Removed unnecessary use statement 2022-10-11 10:43:32 +02:00
liv
818eaa7307 Merge pull request #1227 from rust-lang/all-contributors/add-gfaugere
docs: add gfaugere as a contributor for tool
2022-10-10 11:40:08 +02:00
allcontributors[bot]
d00f7783db docs: update .all-contributorsrc [skip ci] 2022-10-10 09:40:00 +00:00
allcontributors[bot]
bfdc1991a5 docs: update AUTHORS.md [skip ci] 2022-10-10 09:39:59 +00:00
liv
4600bc344c Merge pull request #1216 from gfaugere/add-vscode-extensions-recommendations
feat: Add VSCode extension recommendation
2022-10-10 11:39:21 +02:00
liv
dc14626ae1 Merge pull request #1226 from rust-lang/all-contributors/add-duchonic
docs: add duchonic as a contributor for content
2022-10-10 11:29:37 +02:00
allcontributors[bot]
88a767f39a docs: update .all-contributorsrc [skip ci] 2022-10-10 09:29:28 +00:00
allcontributors[bot]
1e1b689775 docs: update AUTHORS.md [skip ci] 2022-10-10 09:29:27 +00:00
liv
896b9cea2a Merge pull request #1222 from duchonic/patch-1
additional test for fees
2022-10-10 11:29:10 +02:00
Duchoud Nicolas
76392d81fa Added spaces around * 2022-10-04 11:43:23 +02:00
Duchoud Nicolas
4749768734 additional test for fees 2022-10-04 11:36:18 +02:00
Gaëtan Faugère
b4c7507b4d feat: Add VSCode extension recommendation 2022-09-30 15:50:45 +02:00
liv
cade600c91 Merge pull request #1203 from skaunov/patch-2
Correct a link in `threads1` `hint`
2022-09-29 10:47:56 +02:00
liv
069e55c5ee Merge pull request #1213 from rust-lang/all-contributors/add-cj81499
docs: add cj81499 as a contributor for content
2022-09-29 10:45:27 +02:00
allcontributors[bot]
a59e305665 docs: update .all-contributorsrc [skip ci] 2022-09-29 08:45:07 +00:00
allcontributors[bot]
58cba835f2 docs: update AUTHORS.md [skip ci] 2022-09-29 08:45:06 +00:00
liv
6174b5caf0 Merge pull request #1210 from cj81499/iterators1-hint
improve hint for iterators1
2022-09-29 10:44:57 +02:00
liv
2e33d422a5 Merge pull request #1212 from Tostapunk/fix/errors-patch1
fix: Fix typo in errors5 hint
2022-09-29 10:44:20 +02:00
Tostapunk
1660f1647e fix: Fix typo in errors5 hint
fixes #1205
2022-09-28 23:40:00 +02:00
Cal Jacobson
efdebd48b6 improve hint for iterators1 2022-09-25 15:22:15 -05:00
skaunov
c0b3194a55 Correct a link in threads1 hint
It didn't work without last character
2022-09-17 00:26:05 +03:00
liv
2398f378b0 Merge pull request #1200 from rust-lang/all-contributors/add-skaunov
docs: add skaunov as a contributor
2022-09-15 12:00:02 +02:00
allcontributors[bot]
37a7344219 docs: update .all-contributorsrc [skip ci] 2022-09-15 09:29:15 +00:00
allcontributors[bot]
3375b67b2b docs: update AUTHORS.md [skip ci] 2022-09-15 09:29:14 +00:00
liv
56b52115d9 Merge pull request #1199 from skaunov/patch-1
Add link to `std` in `strings3` hint
2022-09-15 11:28:58 +02:00
skaunov
3028d1395c Add link to std in strings3 hint
Seems like it's the first place, where `std` is introduced in Rustlings, and it's a good place to facilitate docs discovery for user. As _the book_ seems to have no Rustlings-sized solutions for this exercise.
2022-09-13 16:33:03 +03:00
liv
b85b8de232 Merge pull request #1198 from rust-lang/all-contributors/add-gasparitiago
docs: add gasparitiago as a contributor
2022-09-13 10:11:22 +02:00
allcontributors[bot]
072847943a docs: update .all-contributorsrc [skip ci] 2022-09-13 08:11:13 +00:00
allcontributors[bot]
d3c0c18946 docs: update AUTHORS.md [skip ci] 2022-09-13 08:11:12 +00:00
liv
4190b73f70 Merge pull request #1196 from gasparitiago/patch-1
fix(quiz2): fix comment regarding hints
2022-09-13 10:10:55 +02:00
Tiago De Gaspari
68fe97bbc2 fix(quiz2): fix comment regarding hints
Change the comment on quiz2.rs, since there are no hints.
2022-09-12 10:53:59 -03:00
Arkid
34ed235885 fix: Add a deref in the test code
It's virtually impossible to write a the `num_sq` function to take the Box since it doesn't implement `MulAssign`.
2022-09-09 02:40:22 +02:00
mokou
c923e7af73 chore: release 5.2.1 2022-09-06 12:22:17 +02:00
liv
c838d446ad Merge pull request #1191 from rust-lang/all-contributors/add-memark
docs: add memark as a contributor for content
2022-09-06 12:17:16 +02:00
allcontributors[bot]
50323a3977 docs: update .all-contributorsrc [skip ci] 2022-09-06 10:17:08 +00:00
allcontributors[bot]
7b5ef323c5 docs: update AUTHORS.md [skip ci] 2022-09-06 10:17:07 +00:00
liv
199150fda2 Merge pull request #1171 from memark/patch-1
Add quotes for readability of output
2022-09-06 12:16:54 +02:00
liv
c1b5a0511f Merge pull request #1190 from rust-lang/all-contributors/add-miguelraz
docs: add miguelraz as a contributor for content
2022-09-06 12:14:13 +02:00
allcontributors[bot]
742200d14b docs: update .all-contributorsrc [skip ci] 2022-09-06 10:14:06 +00:00
allcontributors[bot]
900d58d054 docs: update AUTHORS.md [skip ci] 2022-09-06 10:14:05 +00:00
liv
6af86bbf22 Merge pull request #1186 from miguelraz/patch-1
typo fix
2022-09-06 12:13:51 +02:00
liv
4c1070faab Merge pull request #1189 from rust-lang/all-contributors/add-rzrymiak
docs: add rzrymiak as a contributor for content
2022-09-06 12:13:34 +02:00
allcontributors[bot]
f437f8e9ea docs: update .all-contributorsrc [skip ci] 2022-09-06 10:13:27 +00:00
allcontributors[bot]
c9c743967f docs: update AUTHORS.md [skip ci] 2022-09-06 10:13:26 +00:00
liv
88c9a23884 Merge pull request #1085 from rzrymiak/main
Update README.md
2022-09-06 12:13:09 +02:00
liv
1d5700e58a fix(quiz1): add fourth assert 2022-09-06 12:10:53 +02:00
liv
96552e07c2 fix(quiz1): correct explanation once again 2022-09-06 12:09:43 +02:00
Miguel Raz Guzmán Macedo
c97e659d78 typox fix 2022-09-05 10:18:45 -05:00
Magnus Markling
291da61fda Add quotes 2022-08-28 15:12:15 +02:00
Magnus Markling
94bdb708fe Add quotes 2022-08-28 15:10:29 +02:00
mokou
3309a01b5e chore: release 5.2.0 2022-08-27 19:48:15 +01:00
liv
5a03e46d69 Merge pull request #1166 from rust-lang/all-contributors/add-Kodylow
docs: add Kodylow as a contributor for content
2022-08-25 12:12:23 +02:00
allcontributors[bot]
bf95a34553 docs: update .all-contributorsrc [skip ci] 2022-08-25 10:12:15 +00:00
allcontributors[bot]
33e501981a docs: update AUTHORS.md [skip ci] 2022-08-25 10:12:14 +00:00
liv
4ee9a0f6b9 Merge pull request #1164 from Kodylow/quiz1-typo-fix
Fix Quiz 1 >= Typo
2022-08-25 12:11:49 +02:00
Kody Low
d6e26bb350 2nd assert is for greater than or equal to, not "more than" like it says in the instructions 2022-08-24 08:33:17 -07:00
liv
f6a37e28ba Merge pull request #1163 from rust-lang/all-contributors/add-GabrielBianconi
docs: add GabrielBianconi as a contributor for content
2022-08-24 11:16:05 +02:00
liv
a2f66e6a67 Merge pull request #1161 from GabrielBianconi/patch-1
Fix typo in `threads3` hint
2022-08-24 11:15:52 +02:00
allcontributors[bot]
b92e7b968f docs: update .all-contributorsrc [skip ci] 2022-08-24 09:15:52 +00:00
allcontributors[bot]
6c2630afcf docs: update AUTHORS.md [skip ci] 2022-08-24 09:15:51 +00:00
Gabriel Bianconi
86506fa5fd Fix typo in threads3 hint 2022-08-22 23:47:23 -04:00
liv
96098d228a Merge pull request #1151 from magnusrodseth/1031-reset-exercise
Add reset command for a given filename
2022-08-18 14:07:15 +02:00
magnusrodseth
d59dde320b chore: Add suggested changes 2022-08-18 12:47:26 +02:00
liv
fb7d3bf35d Merge pull request #1155 from rust-lang/all-contributors/add-rubiesonthesky
docs: add rubiesonthesky as a contributor for content
2022-08-18 11:54:39 +02:00
allcontributors[bot]
50272a58e2 docs: update .all-contributorsrc [skip ci] 2022-08-18 09:54:30 +00:00
allcontributors[bot]
93f60d3f8d docs: update AUTHORS.md [skip ci] 2022-08-18 09:54:29 +00:00
liv
97bf2469b6 Merge pull request #1154 from rust-lang/all-contributors/add-magnusrodseth
docs: add magnusrodseth as a contributor for content
2022-08-18 11:54:06 +02:00
allcontributors[bot]
2088dfbaf6 docs: update .all-contributorsrc [skip ci] 2022-08-18 09:53:55 +00:00
allcontributors[bot]
e889c5bb60 docs: update AUTHORS.md [skip ci] 2022-08-18 09:53:54 +00:00
liv
44d609816b Merge pull request #1150 from magnusrodseth/1109-options2-test
`options2`: Convert the main function into tests
2022-08-18 11:53:16 +02:00
magnusrodseth
99ea2cbba7 chore: make options2 not compile deliberately 2022-08-17 16:53:41 +02:00
magnusrodseth
0aff5340b5 test: Add integration tests 2022-08-17 16:43:48 +02:00
magnusrodseth
6f44cb1dd2 feat: Add reset command, given a filename 2022-08-17 16:31:53 +02:00
magnusrodseth
52a29aa84b test: Convert main function to working tests 2022-08-17 12:50:34 +02:00
mokou
d0c7b06eff chore: release 5.1.1 2022-08-17 10:43:50 +02:00
liv
5f9dd129ea Merge pull request #1149 from rust-lang/all-contributors/add-vostok92
docs: add vostok92 as a contributor for content
2022-08-17 10:41:58 +02:00
allcontributors[bot]
34392662a6 docs: update .all-contributorsrc [skip ci] 2022-08-17 08:41:50 +00:00
allcontributors[bot]
3c1fe226f0 docs: update AUTHORS.md [skip ci] 2022-08-17 08:41:49 +00:00
liv
3ac002934d Merge pull request #1148 from vostok92/main
fix(options1): wrong assertions
2022-08-17 10:41:34 +02:00
vostok92
4455c22b9a Update options1.rs
Fix assertions
2022-08-17 13:51:17 +09:00
mokou
714a8075cc chore: bump version 2022-08-16 09:54:25 +02:00
mokou
0a9d34a25a doc: update changelog 2022-08-16 09:53:40 +02:00
mokou
bb6b9e1704 doc: add zulip link 2022-08-16 09:41:41 +02:00
liv
8a4ed70762 Merge pull request #1069 from exdx/rc-exercise
feat: add rc1.rs exercise
2022-08-16 09:37:39 +02:00
liv
1c3b003c7c Merge branch 'main' into rc-exercise 2022-08-16 09:37:34 +02:00
liv
25ab52b8e7 Merge pull request #1103 from exdx/feat/cow
feat: add cow1.rs exercise
2022-08-16 09:35:53 +02:00
liv
cd0ee50dd7 Merge pull request #1146 from rust-lang/all-contributors/add-nico-vromans
docs: add nico-vromans as a contributor for content
2022-08-16 09:32:57 +02:00
allcontributors[bot]
2f2f141564 docs: update .all-contributorsrc [skip ci] 2022-08-16 07:32:32 +00:00
allcontributors[bot]
4400ce2892 docs: update AUTHORS.md [skip ci] 2022-08-16 07:32:31 +00:00
liv
cc1b22d45f Merge pull request #1144 from nico-vromans/patch-1
Update options1.rs
2022-08-16 09:32:18 +02:00
Nico Vromans
e8122daa87 Update options1.rs
Added extra test for before 10PM and updated the test for at 10PM (when it's 10PM there should already not be any ice cream left, as per the description). Also fixed the `raw_value` test, as it is later than 10PM, so there should be no more ice cream left.
2022-08-15 10:05:50 +02:00
liv
8dfffe8aa2 Merge pull request #1141 from rust-lang/all-contributors/add-markusboehme
docs: add markusboehme as a contributor for code
2022-08-12 10:25:27 +02:00
allcontributors[bot]
f107e2f31d docs: update .all-contributorsrc [skip ci] 2022-08-12 08:25:13 +00:00
allcontributors[bot]
cf813b707c docs: update AUTHORS.md [skip ci] 2022-08-12 08:25:12 +00:00
liv
2b0c73c7e4 Merge pull request #1140 from markusboehme/fix/options1/remove-unused-code
fix(options1): remove unused code
2022-08-12 10:24:58 +02:00
Markus Boehme
3c84cc1702 fix(options1): remove unused code
Since rewriting the exercise in commit 06e4fd3765 the print_number
function goes unused. Remove it.
2022-08-11 22:54:08 +02:00
liv
57377e8bf7 Merge pull request #1139 from rust-lang/all-contributors/add-brianfakhoury
docs: add brianfakhoury as a contributor for content
2022-08-11 12:38:36 +02:00
allcontributors[bot]
a16e7b918a docs: update .all-contributorsrc [skip ci] 2022-08-11 10:38:01 +00:00
allcontributors[bot]
7e1a4c0363 docs: update AUTHORS.md [skip ci] 2022-08-11 10:38:00 +00:00
liv
cfbce9d225 Merge pull request #1138 from rust-lang/all-contributors/add-johnmendel
docs: add johnmendel as a contributor for code
2022-08-11 12:31:22 +02:00
allcontributors[bot]
c1c4f86317 docs: update .all-contributorsrc [skip ci] 2022-08-11 10:30:25 +00:00
allcontributors[bot]
dcf4efe628 docs: update AUTHORS.md [skip ci] 2022-08-11 10:30:24 +00:00
liv
26b347a8bd Merge pull request #1131 from johnmendel/main
fix(traits5): make exercise prefer trait-based solution
2022-08-11 12:30:12 +02:00
liv
3c85fc4d39 Merge pull request #1136 from rust-lang/all-contributors/add-Mouwrice
docs: add Mouwrice as a contributor for content
2022-08-11 12:29:35 +02:00
liv
a7ca40d8a3 Merge pull request #1132 from brianfakhoury/patch-1
Fix minor spelling
2022-08-11 12:29:16 +02:00
allcontributors[bot]
8d9df94b6c docs: update .all-contributorsrc [skip ci] 2022-08-11 10:27:28 +00:00
allcontributors[bot]
bf84fe029f docs: update AUTHORS.md [skip ci] 2022-08-11 10:27:27 +00:00
liv
ca96e32ff7 Merge pull request #1133 from Mouwrice/fix/macro-readme-book-link
fix(macros-readme): update the book link to the more recent version of the book
2022-08-11 12:27:12 +02:00
Mouwrice
ef70ad907f fix(macros-readme): update the book link to the more recent version of the book 2022-08-09 20:27:27 +02:00
Brian Fakhoury
f25f77e915 Fix minor spelling 2022-08-08 15:39:35 -04:00
John Mendelewski III
a0a06232ce fix(traits5): make exercise prefer trait-based solution
closes #1088
2022-08-07 14:51:16 -04:00
liv
300cdc27dd Merge pull request #1123 from rust-lang/all-contributors/add-clairew
docs: add clairew as a contributor for content
2022-08-03 17:36:14 +02:00
allcontributors[bot]
7a7281764c docs: update .all-contributorsrc [skip ci] 2022-08-03 15:36:08 +00:00
allcontributors[bot]
d27c12e35d docs: update AUTHORS.md [skip ci] 2022-08-03 15:36:07 +00:00
liv
cbf9016187 Merge pull request #1110 from clairew/fix/info-toml-typo
fix: remove extra " typo in info.toml
2022-08-03 17:35:51 +02:00
liv
6ac42c5141 Merge pull request #1122 from rust-lang/all-contributors/add-tvkn
docs: add tvkn as a contributor for content
2022-08-03 17:35:08 +02:00
allcontributors[bot]
6289238d1d docs: update .all-contributorsrc [skip ci] 2022-08-03 15:35:00 +00:00
allcontributors[bot]
e3b65186fd docs: update AUTHORS.md [skip ci] 2022-08-03 15:34:59 +00:00
liv
affc815447 Merge pull request #1112 from tvkn/feat/options1/update-expected-result
feat(options1): update expected result
2022-08-03 17:34:43 +02:00
mokou
af301a2efe feat(errors5): add simpler explanation for box dyn 2022-08-03 17:31:42 +02:00
liv
977a167335 Merge pull request #1121 from rust-lang/all-contributors/add-Lioness100
docs: add Lioness100 as a contributor for content
2022-08-03 17:13:28 +02:00
allcontributors[bot]
08f42761f9 docs: update .all-contributorsrc [skip ci] 2022-08-03 15:13:19 +00:00
allcontributors[bot]
a04d62372f docs: update AUTHORS.md [skip ci] 2022-08-03 15:13:18 +00:00
liv
5a8f2b62e3 Merge pull request #1117 from Lioness100/refactor/todo
refactor(box1): prefer todo! over unimplemented!
2022-08-03 17:12:58 +02:00
Lioness100
c5ecc37a9a refactor(box1): prefer todo! over unimplemented! 2022-07-30 10:50:07 -04:00
Mikael Frosthage
5ff23a2861 Improve hint for as_ref_mut 2022-07-26 22:02:50 +02:00
Tristan Nicholls
a56f648cce feat(options1): update expected result
Expected result is updated to better showcase the difference between
- a valid result with no ice-creams `Some(0)`, and
- an invalid result `None`.
2022-07-26 21:01:09 +02:00
Claire Wang
a3a5fbeddf fix: remove extra " typo in info.toml 2022-07-25 19:00:35 -07:00
liv
3963559810 Merge pull request #1106 from rust-lang/all-contributors/add-thatlittleboy
docs: add thatlittleboy as a contributor for content
2022-07-24 23:26:20 +02:00
allcontributors[bot]
4bee3399f8 docs: update .all-contributorsrc [skip ci] 2022-07-24 21:26:13 +00:00
allcontributors[bot]
32687cc66e docs: update AUTHORS.md [skip ci] 2022-07-24 21:26:12 +00:00
liv
d21a8e63c1 Merge pull request #1102 from thatlittleboy/fix/hints-typos
Fix/hints typos
2022-07-24 23:25:58 +02:00
Denton24646
72e21a2a6c feat: add cow1.rs exercise 2022-07-23 17:59:53 -04:00
Jeremy Goh
301bc52857 fix: lineno typo 2022-07-24 00:37:40 +08:00
Jeremy Goh
f88c7d1e8c fix: reference to variables4 2022-07-24 00:36:27 +08:00
liv
3a327096c6 Merge pull request #1101 from rust-lang/all-contributors/add-saikatdas0790
docs: add saikatdas0790 as a contributor for content
2022-07-23 17:41:10 +02:00
allcontributors[bot]
7a6079b46a docs: update .all-contributorsrc [skip ci] 2022-07-23 15:41:03 +00:00
allcontributors[bot]
c1fc77e50f docs: update AUTHORS.md [skip ci] 2022-07-23 15:41:02 +00:00
liv
cbca27dffe Merge pull request #1099 from saikatdas0790/patch-1
Fix manual installation with install to the current directory
2022-07-23 17:40:43 +02:00
liv
5cb40b2c95 Merge pull request #1094 from greg-el/main
fix(run): correct "PAS" in `integration_tests.rs`
2022-07-23 17:38:27 +02:00
liv
e0fb7e72bb Merge pull request #1100 from rust-lang/all-contributors/add-EdwinChang24
docs: add EdwinChang24 as a contributor for content
2022-07-23 17:37:13 +02:00
allcontributors[bot]
e858fd94fb docs: update .all-contributorsrc [skip ci] 2022-07-23 15:37:06 +00:00
allcontributors[bot]
56c05f6232 docs: update AUTHORS.md [skip ci] 2022-07-23 15:37:05 +00:00
liv
2663cc8e80 Merge pull request #1092 from EdwinChang24/fix-editorconfig
fix: Fix typo in .editorconfig
2022-07-23 17:36:42 +02:00
Saikat Das
2356b5c1b6 Fix manual installation with install to the current directory 2022-07-23 15:55:30 +05:30
Greg Leonard
e9f5c9423c fix(run): correct "PAS" in integration_tests.rs 2022-07-21 23:13:22 +01:00
Edwin Chang
f34d390bba fix: Fix typo in .editorconfig 2022-07-20 18:23:31 -04:00
liv
fb7dac75a7 Merge pull request #1089 from greg-el/main
fix(traits5): fix "paramter" spelling
2022-07-20 09:09:43 +02:00
Greg Leonard
f9413b8ae1 fix(traits5): fix "paramter" spelling 2022-07-19 20:05:04 +01:00
liv
fef10b8a0f Merge pull request #1087 from rust-lang/all-contributors/add-PrettyWood
docs: add PrettyWood as a contributor for content
2022-07-19 14:40:31 +02:00
allcontributors[bot]
82c41a61b6 docs: update .all-contributorsrc [skip ci] 2022-07-19 12:40:23 +00:00
allcontributors[bot]
3b74f5dae8 docs: update AUTHORS.md [skip ci] 2022-07-19 12:40:22 +00:00
liv
316fc58b4c Merge pull request #1086 from PrettyWood/patch-2
remove small typo in hint of threads3
2022-07-19 14:40:07 +02:00
Eric Jolibois
8a4dca5fa6 remove small typo in hint of threads3 2022-07-19 11:45:34 +02:00
rzrymiak
4910bae10f Update README.md
Minor grammatical edit in README.md
2022-07-18 17:00:16 -07:00
liv
0e7de2e7a7 Merge pull request #1079 from Tostapunk/fix/lifetimes-patch1
fix: Improve hint of lifetimes2
2022-07-18 16:06:16 +02:00
Mattia Schiavon
e1d6abb4c9 Apply suggestions from code review
Co-authored-by: liv <mokou@fastmail.com>
2022-07-18 14:44:16 +02:00
Tostapunk
02d78c3e84 fix: Improve hint of lifetimes2
fixes #1071
2022-07-18 14:11:51 +02:00
liv
727fc3037c Merge pull request #1078 from rust-lang/all-contributors/add-Tostapunk
docs: add Tostapunk as a contributor for content
2022-07-18 10:48:20 +02:00
allcontributors[bot]
1aecf32748 docs: update .all-contributorsrc [skip ci] 2022-07-18 08:47:49 +00:00
allcontributors[bot]
2f113b9b06 docs: update AUTHORS.md [skip ci] 2022-07-18 08:47:49 +00:00
liv
d46a97ef97 Merge pull request #1076 from Tostapunk/main
fix(traits5.rs): wrong line number
2022-07-18 10:47:35 +02:00
Tostapunk
7035d6787c fix(traits5.rs): wrong line number 2022-07-18 00:27:57 +02:00
Denton24646
ce86d252e5 feat: add rc1.rs exercise 2022-07-16 17:39:03 -04:00
liv
8a0c6cfcfa Merge pull request #1068 from wojexe/patch-2
fix(traits4.rs): wrong line number
2022-07-16 20:48:09 +02:00
wojexe
b0e070c743 fix(traits4.rs): wrong line number
fixes #1067
2022-07-16 19:51:50 +02:00
liv
ab291a1fcd Merge pull request #1065 from rust-lang/all-contributors/add-wojexe
docs: add wojexe as a contributor for content
2022-07-16 18:27:48 +02:00
allcontributors[bot]
3bb008ebbb docs: update .all-contributorsrc [skip ci] 2022-07-16 16:27:41 +00:00
allcontributors[bot]
e8cf9b2628 docs: update AUTHORS.md [skip ci] 2022-07-16 16:27:40 +00:00
liv
179202a34a Merge pull request #1064 from wojexe/patch-1
fix: make strings3.rs comment wording more clear
2022-07-16 18:27:26 +02:00
wojexe
55900c65cb fix: make strings3.rs comment wording more clear
fixes #1063
2022-07-16 17:28:13 +02:00
mokou
5435b80841 chore: bump version 2022-07-16 14:30:04 +02:00
mokou
5138f22e00 doc: update book links 2022-07-16 14:25:10 +02:00
mokou
cc3e1a8511 doc: update changelog 2022-07-16 14:17:24 +02:00
mokou
c791cf4232 Merge branch '5.0-dev' 2022-07-15 14:31:49 +02:00
liv
f1c4caa37f Merge pull request #1059 from rust-lang/all-contributors/add-neilpate
docs: add neilpate as a contributor for content
2022-07-15 14:19:35 +02:00
allcontributors[bot]
e36c95bb3a docs: update .all-contributorsrc [skip ci] 2022-07-15 12:19:27 +00:00
allcontributors[bot]
bc25309763 docs: update AUTHORS.md [skip ci] 2022-07-15 12:19:26 +00:00
Neil Pate
c265b681b1 fix(quiz1): change function name 2022-07-15 14:18:31 +02:00
liv
52b9f199a2 Merge pull request #1058 from rust-lang/all-contributors/add-swhiteCQC
docs: add swhiteCQC as a contributor for content
2022-07-15 14:16:04 +02:00
allcontributors[bot]
211528c31b docs: update .all-contributorsrc [skip ci] 2022-07-15 12:15:57 +00:00
allcontributors[bot]
2b349e3b28 docs: update AUTHORS.md [skip ci] 2022-07-15 12:15:56 +00:00
mokou
1a7a3f5c8e fix(traits): update hint comments 2022-07-15 14:14:48 +02:00
Sam White
63b0c7e399 feat: add traits5.rs exercise 2022-07-15 14:14:15 +02:00
Sam White
599d634ee2 feat: Add traits4.rs exercise 2022-07-15 14:13:44 +02:00
Sam White
f43c6d7877 feat: Add traits3.rs exercise 2022-07-15 14:13:15 +02:00
Rod Elias
9b66b2a0e9 fix(try_from_into): fix function name 2022-07-15 14:08:51 +02:00
liv
64757698f4 Merge pull request #1057 from rust-lang/all-contributors/add-jayber
docs: add jayber as a contributor for content
2022-07-15 14:05:50 +02:00
allcontributors[bot]
2427184017 docs: update .all-contributorsrc [skip ci] 2022-07-15 12:05:36 +00:00
allcontributors[bot]
75ba60bda6 docs: update AUTHORS.md [skip ci] 2022-07-15 12:05:35 +00:00
jayber
1ef8dacaf6 feat: add lifetimes exercises 2022-07-15 14:03:38 +02:00
liv
7cabbab580 Merge pull request #1056 from rust-lang/all-contributors/add-Jzow
docs: add Jzow as a contributor for content
2022-07-15 13:49:25 +02:00
allcontributors[bot]
9329c51df0 docs: update .all-contributorsrc [skip ci] 2022-07-15 11:49:09 +00:00
allcontributors[bot]
bda4d548b4 docs: update AUTHORS.md [skip ci] 2022-07-15 11:49:08 +00:00
James Zow
1cc5df0e14 feat: add github actions config 2022-07-15 13:46:03 +02:00
liv
a0b3156347 Merge pull request #1055 from rust-lang/all-contributors/add-exdx
docs: add exdx as a contributor for content
2022-07-15 13:29:53 +02:00
allcontributors[bot]
c9332062ce docs: update .all-contributorsrc [skip ci] 2022-07-15 11:29:45 +00:00
allcontributors[bot]
b71429bef0 docs: update AUTHORS.md [skip ci] 2022-07-15 11:29:44 +00:00
exdx
a3b5278b42 feat: add threads3.rs exercise 2022-07-15 13:28:49 +02:00
mokou
a3c4c1ccb4 fix: re-add missing done comments 2022-07-15 13:24:11 +02:00
mokou
a6e86fc995 doc: update readme 2022-07-15 13:22:29 +02:00
mokou
0784f54141 doc: update contributing 2022-07-15 12:57:54 +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
liv
636c8ac03d Merge pull request #1054 from rust-lang/all-contributors/add-jaystile
docs: add jaystile as a contributor for content
2022-07-15 12:01:56 +02:00
allcontributors[bot]
b1f82890c9 docs: update .all-contributorsrc [skip ci] 2022-07-15 10:01:49 +00:00
allcontributors[bot]
7b371afc06 docs: update AUTHORS.md [skip ci] 2022-07-15 10:01:48 +00: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
liv
aa472f702e Merge pull request #1053 from rust-lang/all-contributors/add-pgjbz
docs: add pgjbz as a contributor for content
2022-07-14 18:30:20 +02:00
allcontributors[bot]
09ccadeec6 docs: update .all-contributorsrc [skip ci] 2022-07-14 16:29:51 +00:00
allcontributors[bot]
3e7e65b9f0 docs: update AUTHORS.md [skip ci] 2022-07-14 16:29:50 +00: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
liv
69b07b2571 Merge pull request #1052 from rust-lang/all-contributors/add-nacairns1
docs: add nacairns1 as a contributor for content
2022-07-14 18:04:05 +02:00
allcontributors[bot]
537abe273a docs: update .all-contributorsrc [skip ci] 2022-07-14 16:03:58 +00:00
allcontributors[bot]
b2c82d9018 docs: update AUTHORS.md [skip ci] 2022-07-14 16:03:57 +00:00
liv
9f44550cdc Merge pull request #1051 from rust-lang/all-contributors/add-icecream17
docs: add icecream17 as a contributor for content
2022-07-14 18:03:24 +02:00
allcontributors[bot]
34c8833d06 docs: update .all-contributorsrc [skip ci] 2022-07-14 16:03:15 +00:00
allcontributors[bot]
5d02f6e516 docs: update AUTHORS.md [skip ci] 2022-07-14 16:03:14 +00: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
liv
2f69f21f39 Merge pull request #1050 from rust-lang/all-contributors/add-YsuOS
docs: add YsuOS as a contributor for content
2022-07-14 12:12:40 +02:00
allcontributors[bot]
c92de1f8a6 docs: update .all-contributorsrc [skip ci] 2022-07-14 10:12:33 +00:00
allcontributors[bot]
0ddb997076 docs: update AUTHORS.md [skip ci] 2022-07-14 10:12:32 +00:00
mokou
c6bc97adc1 feat(enums3): add hint comment, remove enums1 hint 2022-07-14 12:11:38 +02:00
Ryosuke YASUOKA
d0e8efd19e feat(enums3): Add hint 2022-07-14 12:11:15 +02:00
liv
ed6d541d66 Merge pull request #1049 from rust-lang/all-contributors/add-camperdue42
docs: add camperdue42 as a contributor for content
2022-07-14 12:06:13 +02:00
allcontributors[bot]
62578269eb docs: update .all-contributorsrc [skip ci] 2022-07-14 10:06:04 +00:00
allcontributors[bot]
8fe02d33a9 docs: update AUTHORS.md [skip ci] 2022-07-14 10:06:03 +00: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
exdx
16ff57bbff fix(move_semantics2): clarify referencing 2022-07-12 15:26:55 +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
mokou
6020ec1fe2 feat: reorder vec and primtypes before moving 2022-07-12 14:53:56 +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
Cooper Gillan
b3ec8fe022 chore: Tweak punctuation in variables6.rs hint
While the meaning is still obvious as is, it makes a little more sense
to use a colon here =)
2022-07-11 13:53:31 +02:00
Cooper Gillan
9688609d08 chore: Update variables6.rs hint book link, wording
While the included link for variables6 does navigate to the correct
page, the header in the link itself does not actually exist so it
only loads the top of the page. There is, however, some text about
the difference between variables and constants in the "Constants"
section, so reword the hint some and update the link.
2022-07-11 13:53:09 +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
9ed4b0683e fix(intro1): link to exercise file in hint 2022-07-11 13:20:18 +02:00
mokou
0ded8a90c0 feat(intro1): add more hints 2022-07-11 13:19:19 +02:00
mokou
0aee54a82b chore: unify hint language use 2022-07-11 13:12:47 +02:00
mokou
ed0f278a8f chore: remove mod.rs files and exercises feature 2022-07-11 12:53:49 +02:00
liv
bf69145bb9 Merge pull request #1048 from rust-lang/all-contributors/add-Drew-Morris
docs: add Drew-Morris as a contributor for code
2022-07-11 11:59:41 +02:00
allcontributors[bot]
1caa388e92 docs: update .all-contributorsrc [skip ci] 2022-07-11 09:59:33 +00:00
allcontributors[bot]
11618b65c0 docs: update AUTHORS.md [skip ci] 2022-07-11 09:59:32 +00:00
liv
a475e09cfc Merge pull request #1044 from Drew-Morris/main
chore: Update spacing in Cargo.toml
2022-07-11 11:59:13 +02:00
liv
fba79ea793 Merge pull request #1047 from rust-lang/all-contributors/add-KatanaFluorescent
docs: add KatanaFluorescent as a contributor for code
2022-07-11 11:58:41 +02:00
allcontributors[bot]
440138af84 docs: update .all-contributorsrc [skip ci] 2022-07-11 09:58:19 +00:00
allcontributors[bot]
8835034bd2 docs: update AUTHORS.md [skip ci] 2022-07-11 09:58:18 +00:00
liv
5fbf28dfec Merge pull request #1038 from KatanaFluorescent/main
change edition to 2021 in exercices.rs
2022-07-11 11:57:59 +02:00
liv
2a12df4591 Merge pull request #1046 from rust-lang/all-contributors/add-0pling
docs: add 0pling as a contributor for content
2022-07-11 11:54:56 +02:00
allcontributors[bot]
995ba213e2 docs: update .all-contributorsrc [skip ci] 2022-07-11 09:53:39 +00:00
allcontributors[bot]
f73aec1a63 docs: update AUTHORS.md [skip ci] 2022-07-11 09:53:38 +00:00
liv
08e3cf494b Merge pull request #1034 from 0pling/main
docs: Add missing exercise to book chapter mapping
2022-07-11 11:53:20 +02:00
liv
36c43cb839 Merge pull request #1045 from rust-lang/all-contributors/add-klkl0808
docs: add klkl0808 as a contributor for content
2022-07-11 11:52:12 +02:00
allcontributors[bot]
c9e0d53ed2 docs: update .all-contributorsrc [skip ci] 2022-07-11 09:51:31 +00:00
allcontributors[bot]
c38d75481e docs: update AUTHORS.md [skip ci] 2022-07-11 09:51:30 +00:00
liv
612ae8b8f7 Merge pull request #1024 from klkl0808/patch-2
Update link to book in variables5
2022-07-11 11:51:13 +02:00
Drew Morris
df68d1a86e chore: Update spacing in Cargo.toml 2022-07-09 16:50:57 -06:00
KatanaFluorescent
a500ed2c3c change edition to 2021 in exercices.rs
workaround for this issue https://github.com/rust-lang/rustlings/issues/1022
2022-07-01 16:49:36 +02:00
mokou
6588d9be22 chore: bump version 2022-07-01 16:48:34 +02:00
0pling
be3944072c docs: Add missing exercise to book chapter mapping 2022-06-26 10:27:18 +08:00
liv
d27f5a7d41 Merge pull request #1028 from rust-lang/all-contributors/add-jackos
docs: add jackos as a contributor for code
2022-06-17 13:01:17 +02:00
allcontributors[bot]
e48f634f34 docs: update .all-contributorsrc [skip ci] 2022-06-17 11:01:04 +00:00
allcontributors[bot]
23403546d2 docs: update AUTHORS.md [skip ci] 2022-06-17 11:01:03 +00:00
liv
294ef8d92c Merge pull request #1026 from jackos/rust-analyzer-fix
Add lsp command to fix rust-analyzer
2022-06-17 13:00:44 +02:00
Jack Clayton
be87cc9fa6 Add lsp command to fix rust-analyzer 2022-06-17 11:36:06 +08:00
Konstantin
baca5d62ae fix: update link to book 2022-06-13 21:30:25 +02:00
diannasoreil
b19f74e8cf Merge pull request #1017 from rust-lang/dependabot/cargo/regex-1.5.5
chore(deps): bump regex from 1.5.4 to 1.5.5
2022-06-07 16:12:05 +02:00
dependabot[bot]
5130a57f8f chore(deps): bump regex from 1.5.4 to 1.5.5
Bumps [regex](https://github.com/rust-lang/regex) from 1.5.4 to 1.5.5.
- [Release notes](https://github.com/rust-lang/regex/releases)
- [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/regex/compare/1.5.4...1.5.5)

---
updated-dependencies:
- dependency-name: regex
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-06 21:06:16 +00:00
diannasoreil
dc6376788b Merge pull request #1007 from rust-lang/all-contributors/add-bufo24
docs: add bufo24 as a contributor for content
2022-05-23 15:57:21 +02:00
allcontributors[bot]
ffb6ecaf7e docs: update .all-contributorsrc [skip ci] 2022-05-23 13:57:00 +00:00
allcontributors[bot]
34a3c440d0 docs: update AUTHORS.md [skip ci] 2022-05-23 13:56:59 +00:00
diannasoreil
386257a06e Merge pull request #1006 from bufo24/fix-typo-in-info.toml
typo fix in hint message if2
2022-05-23 15:56:42 +02:00
Jesse van Papenrecht
0bdb5207b5 typo fix in hint message if2 2022-05-22 18:56:26 +02:00
diannasoreil
5615dd9e7d Merge pull request #1003 from rust-lang/all-contributors/add-lucasgrvarela
docs: add lucasgrvarela as a contributor for content
2022-05-21 16:30:22 +02:00
allcontributors[bot]
439a07445e docs: update .all-contributorsrc [skip ci] 2022-05-21 14:30:14 +00:00
allcontributors[bot]
fedabf5f7f docs: update AUTHORS.md [skip ci] 2022-05-21 14:30:12 +00:00
diannasoreil
fdc3eb3b4e Merge pull request #1002 from lucasgrvarela/patch-1
Update info.toml - fix line number hint on exercise variables 1
2022-05-21 16:29:51 +02:00
Lucas Grigolon Varela
b0e079e6bf Update info.toml 2022-05-20 20:26:37 -03:00
diannasoreil
06cc363a46 Merge pull request #1001 from rust-lang/all-contributors/add-merelymyself
docs: add merelymyself as a contributor for code
2022-05-17 13:21:41 +02:00
allcontributors[bot]
47afcdcc6b docs: update .all-contributorsrc [skip ci] 2022-05-17 11:21:34 +00:00
allcontributors[bot]
c17177bdef docs: update AUTHORS.md [skip ci] 2022-05-17 11:21:33 +00:00
diannasoreil
8972e8f598 Merge pull request #1000 from merelymyself/patch-1
Checks for rustup install in install.sh.
2022-05-17 13:21:18 +02:00
pwygab
5b94016585 check for rustup install 2022-05-17 17:24:39 +08:00
diannasoreil
75b09dd69a Merge pull request #990 from rust-lang/all-contributors/add-nandajavarma
docs: add nandajavarma as a contributor for doc
2022-05-10 12:45:23 +02:00
allcontributors[bot]
89efbdf02d docs: update .all-contributorsrc [skip ci] 2022-05-10 10:45:14 +00:00
allcontributors[bot]
b8ff299399 docs: update AUTHORS.md [skip ci] 2022-05-10 10:45:13 +00:00
diannasoreil
b4510fc03b Merge pull request #989 from nandajavarma/main
remove deprecated user uploaded extension from .gitpod.yml
2022-05-10 12:44:51 +02:00
Nandaja Varma
769483640c remove deprecated user uploaded extension from .gitpod.yml 2022-05-09 19:40:30 +00:00
diannasoreil
aaccd6f7f3 Merge pull request #987 from likzn/fix/install_arr
fix(install.sh):fix `rust version` check
2022-05-06 16:42:09 +02:00
likzn
7027320a8f fix(install.sh):fix arr out of bounds 2022-05-04 00:46:49 +08:00
diannasoreil
b759ef6b58 Merge pull request #983 from rust-lang/all-contributors/add-liby
docs: add liby as a contributor for content
2022-04-27 12:22:28 +02:00
allcontributors[bot]
a18f3b8158 docs: update .all-contributorsrc [skip ci] 2022-04-27 10:22:20 +00:00
allcontributors[bot]
144e1ef018 docs: update AUTHORS.md [skip ci] 2022-04-27 10:22:19 +00:00
mokou
659a99032e chore: change branch name to main for cloning 2022-04-27 12:21:54 +02:00
diannasoreil
c5de2d686d Merge pull request #981 from liby/feature/replace-git-io-short-link
docs: replace git.io link with the original URL
2022-04-27 12:21:12 +02:00
Bryan Lee
13832d7726 docs: replace git.io link with the original URL 2022-04-27 00:51:25 +08:00
diannasoreil
b7cce5c050 Merge pull request #980 from rust-lang/all-contributors/add-luskwater
docs: add luskwater as a contributor for content
2022-04-25 11:38:27 +02:00
allcontributors[bot]
7a41bbca67 docs: update .all-contributorsrc [skip ci] 2022-04-25 09:38:19 +00:00
allcontributors[bot]
9e98b78260 docs: update AUTHORS.md [skip ci] 2022-04-25 09:38:18 +00:00
diannasoreil
604166f549 Merge pull request #975 from luskwater/scope-for-vogue
docs(move_semantics5): Replace "in vogue" with "in scope" in hint
2022-04-25 11:38:05 +02:00
diannasoreil
96b301c04e Merge pull request #979 from rust-lang/all-contributors/add-cuishuang
docs: add cuishuang as a contributor for content
2022-04-25 11:36:49 +02:00
allcontributors[bot]
190bb27d78 docs: update .all-contributorsrc [skip ci] 2022-04-25 09:36:31 +00:00
allcontributors[bot]
7eb66550c9 docs: update AUTHORS.md [skip ci] 2022-04-25 09:36:30 +00:00
diannasoreil
8f99209ab2 Merge pull request #976 from cuishuang/main
fix typo
2022-04-25 11:36:13 +02:00
cuishuang
701dd9c700 fix typo
Signed-off-by: cuishuang <imcusg@gmail.com>
2022-04-23 21:01:40 +08:00
Ron Lusk
b821ffdd33 docs(move_semantics5): Replace "in vogue" with "in scope" in hint
The hint for `move_semantics5` refers to "the range in which each
mutable reference is in vogue". Unless this is a deliberate
introduction of "vogue" (an admittedly-useful term because "scope"
isn't purely lexical, as in many other languages), it may be in error:
I have been unable to find the term used with reference to *Rust*
references.

Thus, I'm suggesting the replacement, in case it's been overlooked.
2022-04-22 09:04:36 -04:00
diannasoreil
102a4b92a0 Merge pull request #974 from rust-lang/all-contributors/add-rytheo
docs: add rytheo as a contributor for code
2022-04-21 11:37:00 +02:00
allcontributors[bot]
283a4691aa docs: update .all-contributorsrc [skip ci] 2022-04-21 09:36:53 +00:00
allcontributors[bot]
8dc696883e docs: update AUTHORS.md [skip ci] 2022-04-21 09:36:52 +00:00
diannasoreil
a6f50fd6f3 Merge pull request #484 from rytheo/progress-indicator
feat!: Add progress indicator
2022-04-21 11:36:38 +02:00
Ryan Lowe
6fae5d6114 Merge branch 'main' into progress-indicator 2022-04-20 23:29:47 -04:00
mokou
d2179d3e84 doc: update manual checkout version 2022-04-20 09:47:43 +02:00
mokou
9ec35d899c chore: bump version
Plus, remove the clog configuration file,
since that's not being used anymore.
2022-04-20 09:44:37 +02:00
mokou
c811643d1e chore: bump library versions 2022-04-20 09:35:08 +02:00
mokou
a259704570 Merge remote-tracking branch 'origin/main' 2022-04-20 09:21:01 +02:00
mokou
268822dbd8 chore: bump minimum required rust version in installs 2022-04-20 09:20:42 +02: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
diannasoreil
b3734ba310 Merge pull request #972 from rust-lang/all-contributors/add-Fointard
docs: add Fointard as a contributor for content
2022-04-20 09:14:35 +02:00
allcontributors[bot]
c9b73e412e docs: update .all-contributorsrc [skip ci] 2022-04-20 07:14:27 +00:00
allcontributors[bot]
107f1f97d9 docs: update AUTHORS.md [skip ci] 2022-04-20 07:14:26 +00:00
diannasoreil
420729da60 Merge pull request #968 from Fointard/fointard_arc1
refactor(arc1): improve readability by using functional style
2022-04-20 09:14:08 +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
mokou
0b7f3fe37a test: skip mod.rs files when checking for annotations 2022-04-14 11:19:54 +02:00
mokou
cf9f382873 chore: bump version 2022-04-14 11:16:00 +02:00
mokou
8f33dba9ca docs: write documentation for enabling rust-analyzer 2022-04-14 11:15:04 +02:00
mokou
6c87dc8210 docs: update changelog for new release 2022-04-14 11:09:27 +02:00
diannasoreil
6c071d4701 Merge pull request #963 from rust-lang/all-contributors/add-J-S-Kim
docs: add J-S-Kim as a contributor for content
2022-04-14 10:46:23 +02:00
allcontributors[bot]
03ba8836f2 docs: update .all-contributorsrc [skip ci] 2022-04-14 08:44:39 +00:00
allcontributors[bot]
4bb94e050b docs: update AUTHORS.md [skip ci] 2022-04-14 08:44:38 +00: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
diannasoreil
c39eb3fe55 Merge pull request #962 from rust-lang/all-contributors/add-stevenfukase
docs: add stevenfukase as a contributor for content
2022-04-14 10:26:16 +02:00
allcontributors[bot]
7dcc1fca29 docs: update .all-contributorsrc [skip ci] 2022-04-14 08:26:07 +00:00
allcontributors[bot]
887b6e183b docs: update AUTHORS.md [skip ci] 2022-04-14 08:26:06 +00: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
diannasoreil
e6c0d00637 Merge pull request #959 from rust-lang/all-contributors/add-ragreenburg
docs: add ragreenburg as a contributor for content
2022-04-06 09:29:59 +02:00
allcontributors[bot]
b1cdce6289 docs: update .all-contributorsrc [skip ci] 2022-04-06 07:29:50 +00:00
allcontributors[bot]
d3c5058d89 docs: update AUTHORS.md [skip ci] 2022-04-06 07:29:49 +00:00
ragreenburg
89650f808a fix(move_semantics2): Add comment 2022-04-06 09:29:27 +02:00
diannasoreil
0a92262fa0 Merge pull request #953 from haveneer-training/fix-installation-path
fix(install): protect path with whitespaces using quotes
2022-04-04 17:22:22 +02:00
diannasoreil
4e2a354716 Merge pull request #954 from haveneer-training/fix-mod-content
fix(move_semantics) : add move_semantics6.rs to its mod
2022-04-04 17:10:23 +02:00
diannasoreil
74895df5a7 Merge pull request #738 from apogeeoak/text
fix(cli): Move long text strings into constants.
2022-04-04 17:09:49 +02:00
Pascal Havé
d114847f25 fix(install): protect path with whitespaces using quotes and stop at the first error 2022-04-04 00:27:05 +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
mokou
bdf6efeccd chore: clean up readme 2022-03-29 15:04:52 +02:00
diannasoreil
331cdef7e3 Merge pull request #950 from rust-lang/all-contributors/add-Kallu-A
docs: add Kallu-A as a contributor for content
2022-03-29 15:03:06 +02:00
allcontributors[bot]
d4e3d98d0a docs: update .all-contributorsrc [skip ci] 2022-03-29 13:02:52 +00:00
allcontributors[bot]
2ca5250f78 docs: update AUTHORS.md [skip ci] 2022-03-29 13:02:51 +00:00
Lucas Aries
3f0e1303e0 feat: Add move_semantics6.rs exercise (#908) 2022-03-29 15:02:35 +02:00
diannasoreil
c80ad089fd Merge pull request #949 from rust-lang/all-contributors/add-KisaragiEffective
docs: add KisaragiEffective as a contributor for doc
2022-03-29 15:01:09 +02:00
mokou
01023f5b4f chore: copy existing contributors table 2022-03-29 14:59:13 +02:00
allcontributors[bot]
70e29d9717 docs: update .all-contributorsrc [skip ci] 2022-03-29 12:54:22 +00:00
allcontributors[bot]
c60bd97cb9 docs: update AUTHORS.md [skip ci] 2022-03-29 12:54:21 +00:00
diannasoreil
d00f0d8c57 Merge pull request #947 from KisaragiEffective/patch-1
docs: fix some code-blocks were not highlighted
2022-03-29 14:53:55 +02:00
mokou
bf93724511 chore: add empty authors file 2022-03-29 11:52:06 +02:00
mokou
057d912e78 chore: push contributors to AUTHORS.md
the readme file is getting a bit crowded at this point, it's better to have
a reference to AUTHORS.md, and then to let the bot add it in there
2022-03-29 11:49:36 +02:00
diannasoreil
e306e23963 Merge pull request #948 from rust-lang/all-contributors/add-x-hgg-x
docs: add x-hgg-x as a contributor for code
2022-03-29 11:48:05 +02:00
allcontributors[bot]
0232f6058f docs: update .all-contributorsrc [skip ci] 2022-03-29 09:47:51 +00:00
allcontributors[bot]
4378d1db46 docs: update README.md [skip ci] 2022-03-29 09:47:50 +00: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
Kisaragi
17f9d7429c docs: fix some code-blocks were not highlighted 2022-03-28 10:10:25 +09:00
Ryan Lowe
9be012dda0 feat!: Add progress indicator
closes #360

BREAKING CHANGE: verify() has a new function signature so it can
know the current completion progress
2022-02-05 16:54:11 -05:00
apogeeoak
c1f35e46df Merge branch 'main' into text 2022-02-04 19:27:42 -05:00
diannasoreil
cd2b5e8e3b Merge pull request #926 from rust-lang/all-contributors/add-highb
docs: add highb as a contributor for doc
2022-02-04 15:39:55 +01:00
allcontributors[bot]
dc36ca6d84 docs: update .all-contributorsrc [skip ci] 2022-02-04 14:39:43 +00:00
allcontributors[bot]
e96112ab99 docs: update README.md [skip ci] 2022-02-04 14:39:42 +00:00
Brandon High
bc56861744 doc: Add hints on how to get gcc installed (#741) 2022-02-04 15:38:55 +01: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
diannasoreil
9c5d8ad44c Merge pull request #925 from rust-lang/all-contributors/add-sundevilyang
docs: add sundevilyang as a contributor for content
2022-02-04 15:13:43 +01:00
allcontributors[bot]
a2e74a2a4b docs: update .all-contributorsrc [skip ci] 2022-02-04 14:13:32 +00:00
allcontributors[bot]
52c7f8a859 docs: update README.md [skip ci] 2022-02-04 14:13:31 +00: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
radicale
71a06044e6 fix(clippy1): Set clippy::float_cmp lint to deny (#907) 2022-02-04 14:39:09 +01:00
diannasoreil
5002c54ffb Merge pull request #901 from rust-lang/all-contributors/add-tan-zx
docs: add tan-zx as a contributor for content
2021-12-30 12:59:14 +01:00
allcontributors[bot]
17e3e75331 docs: update .all-contributorsrc [skip ci] 2021-12-30 11:59:06 +00:00
allcontributors[bot]
af84359bdb docs: update README.md [skip ci] 2021-12-30 11:59:05 +00:00
diannasoreil
74739261d6 Merge pull request #899 from tan-zx/quiz1/comments
fix(quiz1): update to say quiz covers "If"
2021-12-30 12:58:50 +01:00
ZX
1622e8c198 fix(quiz1): update to say quiz covers "If" 2021-12-29 14:55:37 +08:00
diannasoreil
e06ba1df58 Merge pull request #896 from rust-lang/all-contributors/add-nekonako
docs: add nekonako as a contributor for code
2021-12-24 13:28:16 +01:00
allcontributors[bot]
7dce8c8b61 docs: update .all-contributorsrc [skip ci] 2021-12-24 12:28:08 +00:00
allcontributors[bot]
f61f9f3796 docs: update README.md [skip ci] 2021-12-24 12:28:07 +00:00
diannasoreil
6516a89485 Merge pull request #894 from nekonako/main
chore : replace filter_map() with find_map()
2021-12-24 13:27:52 +01:00
Galih wisnuaji
9b27e8d993 chore : replace filter_map() with find_map() 2021-12-24 13:48:43 +07:00
diannasoreil
f7719a4a9c Merge pull request #891 from rust-lang/all-contributors/add-frvannes16
docs: add frvannes16 as a contributor for code
2021-12-16 14:11:39 +01:00
allcontributors[bot]
81fb396780 docs: update .all-contributorsrc [skip ci] 2021-12-16 13:11:15 +00:00
allcontributors[bot]
8d675198d8 docs: update README.md [skip ci] 2021-12-16 13:11:14 +00:00
diannasoreil
969384c258 Merge pull request #890 from frvannes16/fix/888-std-floats
fix(clippy1): Trigger approx_constant lint rule instead of downgraded float_cmp.
2021-12-16 14:10:58 +01: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
diannasoreil
acaee79994 Merge pull request #889 from rust-lang/all-contributors/add-alirezaghey
docs: add alirezaghey as a contributor for content
2021-12-15 10:44:48 +01:00
allcontributors[bot]
527a5b1182 docs: update .all-contributorsrc [skip ci] 2021-12-15 09:44:39 +00:00
allcontributors[bot]
72b2c9f54f docs: update README.md [skip ci] 2021-12-15 09:44:38 +00:00
alirezaghey
8ef4869b26 fix(functions5): Remove wrong new line and small English improvements (#885) 2021-12-15 10:44:21 +01:00
diannasoreil
dba759e1c6 Merge pull request #872 from rust-lang/all-contributors/add-MpdWalsh
docs: add MpdWalsh as a contributor for code
2021-10-31 17:25:43 +01:00
allcontributors[bot]
cb661896a2 docs: update .all-contributorsrc [skip ci] 2021-10-31 16:25:36 +00:00
allcontributors[bot]
e08b6cf3ef docs: update README.md [skip ci] 2021-10-31 16:25:35 +00:00
diannasoreil
e2fa512e86 Merge pull request #871 from MpdWalsh/main
fix(structs3.rs): assigned value to cents_per_gram in test
2021-10-31 17:25:18 +01: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
ana
359f81dd0b chore: upgrade edition to 2021 2021-10-29 14:27:48 +02:00
diannasoriel
5e5271247a Merge pull request #866 from rust-lang/all-contributors/add-xuesongbj
docs: add xuesongbj as a contributor for content
2021-10-18 13:57:42 +02:00
allcontributors[bot]
71da9068e7 docs: update .all-contributorsrc [skip ci] 2021-10-18 11:57:34 +00:00
allcontributors[bot]
b24b295d88 docs: update README.md [skip ci] 2021-10-18 11:57:33 +00: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
diannasoriel
af91eb508a Merge pull request #860 from rlch/spelling-mistakes
fix: few spelling mistakes
2021-10-02 23:09:52 +02:00
rlch
1c0fe3cbcc fix: few spelling mistakes 2021-10-02 23:59:23 +10:00
diannasoriel
ed7fe883b9 Merge pull request #858 from rust-lang/all-contributors/add-fredr
docs: add fredr as a contributor for content
2021-09-30 10:19:33 +02:00
allcontributors[bot]
ae54c17b6a docs: update .all-contributorsrc [skip ci] 2021-09-30 08:18:53 +00:00
allcontributors[bot]
574bbffe0b docs: update README.md [skip ci] 2021-09-30 08:18:52 +00:00
Fredrik Enestad
46c28d5cef fix(move_semantics5): correct typo (#857) 2021-09-30 10:18:36 +02:00
diannasoriel
ad338ee789 Merge pull request #853 from rust-lang/all-contributors/add-EmisonLu
docs: add EmisonLu as a contributor for content
2021-09-27 10:03:57 +02:00
allcontributors[bot]
e3cfaa246d docs: update .all-contributorsrc [skip ci] 2021-09-27 08:03:47 +00:00
allcontributors[bot]
fed4fe78bb docs: update README.md [skip ci] 2021-09-27 08:03:46 +00:00
Zhenghao Lu
bf33829da2 fix(structs3): remove redundant 'return' (#852) 2021-09-27 10:03:28 +02:00
ana
d57c183028 release: 4.6.0 2021-09-25 11:23:05 +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
diannasoriel
0de45ccdb7 Merge pull request #851 from rust-lang/all-contributors/add-frogtd
docs: add frogtd as a contributor for content
2021-09-25 10:53:13 +02:00
allcontributors[bot]
ab5ecbee7a docs: update .all-contributorsrc [skip ci] 2021-09-25 08:53:05 +00:00
allcontributors[bot]
e106d7a4f4 docs: update README.md [skip ci] 2021-09-25 08:53:04 +00: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
diannasoriel
db9d7a907d Merge pull request #850 from rust-lang/all-contributors/add-abusch
docs: add abusch as a contributor for code
2021-09-25 10:48:04 +02:00
allcontributors[bot]
a1b9c50f36 docs: update .all-contributorsrc [skip ci] 2021-09-25 08:47:56 +00:00
allcontributors[bot]
c4b59aa593 docs: update README.md [skip ci] 2021-09-25 08:47:55 +00:00
diannasoriel
4a18bdeefe Merge pull request #843 from abusch/quit_command
feat: Add "quit" command to `rustlings watch`
2021-09-25 10:47:36 +02:00
Antoine Busch
1caef0b434 feat: Add "quit" command to rustlings watch
closes: #842
2021-09-24 23:55:55 +10:00
diannasoriel
ae56cba9c8 Merge pull request #846 from rust-lang/feat/add-more-watch-commands
feat: add more watch commands
2021-09-24 13:05:04 +02:00
ana
3352b5a4d3 chore: improve println! usage 2021-09-24 13:04:30 +02:00
diannasoriel
24762434ff Merge pull request #849 from rust-lang/all-contributors/add-Millione
docs: add Millione as a contributor for content
2021-09-21 11:50:41 +02:00
allcontributors[bot]
e9c0ca6be2 docs: update .all-contributorsrc [skip ci] 2021-09-21 09:50:32 +00:00
allcontributors[bot]
9ef63c0b9b docs: update README.md [skip ci] 2021-09-21 09:50:31 +00:00
LIU JIE
06d5c0973a fix(cli): typo in exercise.rs (#848) 2021-09-21 11:50:15 +02:00
diannasoriel
8d82856233 Merge pull request #847 from rust-lang/all-contributors/add-Weilet
docs: add Weilet as a contributor for content
2021-09-21 10:44:15 +02:00
allcontributors[bot]
9ddd4ca33a docs: update .all-contributorsrc [skip ci] 2021-09-21 08:44:04 +00:00
allcontributors[bot]
fe726f5bca docs: update README.md [skip ci] 2021-09-21 08:44:03 +00:00
Weilet
0a11bad714 feat(quiz1): add default function name in comment (#838) 2021-09-21 10:43:44 +02:00
ana
a7dc080b95 feat: add more watch commands
Includes:
- quit, to quit the shell instead of having to press Cmd/Ctrl-C or Cmd/Ctrl-D
- help, to display an overview of all the commands available in watch mode.

Closes #842.
2021-09-21 10:36:11 +02:00
diannasoriel
74af578beb Merge pull request #840 from MikAoJk/main
Added in ignore for .iml files
2021-09-09 15:54:57 +02:00
joakim.kartveit
6efa7d5d15 Added ignore for .iml files 2021-09-09 15:53:05 +02:00
diannasoriel
a6774100d4 Merge pull request #836 from rust-lang/all-contributors/add-granddaifuku
docs: add granddaifuku as a contributor for content
2021-09-06 16:33:15 +02:00
allcontributors[bot]
de22b13273 docs: update .all-contributorsrc [skip ci] 2021-09-06 14:33:05 +00:00
allcontributors[bot]
6c41adef63 docs: update README.md [skip ci] 2021-09-06 14:33:03 +00:00
granddaifuku
1c3beb0a59 fix(modules2): fix typo (#835) 2021-09-06 16:32:39 +02:00
diannasoriel
e4e9e4c963 Merge pull request #834 from rust-lang/all-contributors/add-anuk909
docs: add anuk909 as a contributor for content, code
2021-09-03 10:41:51 +02:00
allcontributors[bot]
44d8047249 docs: update .all-contributorsrc [skip ci] 2021-09-03 08:41:43 +00:00
allcontributors[bot]
5423f1be29 docs: update README.md [skip ci] 2021-09-03 08:41:42 +00: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
diannasoriel
5bdb5de855 Merge pull request #830 from rust-lang/all-contributors/add-benarmstead
docs: add benarmstead as a contributor for code
2021-08-24 14:06:55 +02:00
allcontributors[bot]
a64dbdcc04 docs: update .all-contributorsrc [skip ci] 2021-08-24 12:06:45 +00:00
allcontributors[bot]
2f0ff258b1 docs: update README.md [skip ci] 2021-08-24 12:06:44 +00:00
Ben Armstead
1cd9328a58 fix(cli): remove unnecessary borrows (#829)
* Update dependencies

* Format better and remove unnecessary borrows
2021-08-24 14:06:30 +02:00
diannasoriel
ec527824b4 Merge pull request #828 from rust-lang/all-contributors/add-dbednar230
docs: add dbednar230 as a contributor for content
2021-08-24 10:49:50 +02:00
allcontributors[bot]
380587f120 docs: update .all-contributorsrc [skip ci] 2021-08-24 08:49:24 +00:00
allcontributors[bot]
ba8f97f418 docs: update README.md [skip ci] 2021-08-24 08:49:23 +00: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
ana
ba087ce64a release: 4.5.0
Signed-off-by: ana <ana@ana.st>
2021-07-07 22:23:52 +02:00
fmoko
3b03865a62 Merge pull request #801 from rust-lang/all-contributors/add-sinharaksh1t
docs: add sinharaksh1t as a contributor for content
2021-07-07 22:20:02 +02:00
allcontributors[bot]
33fa274bbf docs: update .all-contributorsrc [skip ci] 2021-07-07 20:19:48 +00:00
allcontributors[bot]
23f700dc23 docs: update README.md [skip ci] 2021-07-07 20:19:47 +00: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
fmoko
e4c14ac76e Merge pull request #800 from rust-lang/all-contributors/add-lauralindzey
docs: add lauralindzey as a contributor for doc
2021-07-07 22:17:12 +02:00
allcontributors[bot]
b438049c39 docs: update .all-contributorsrc [skip ci] 2021-07-07 20:17:04 +00:00
allcontributors[bot]
b017579577 docs: update README.md [skip ci] 2021-07-07 20:17:03 +00:00
fmoko
c8e4b357a3 Merge pull request #795 from lauralindzey/docs/section-mapping
docs: Update exercise to chapter mapping for HashMap
2021-07-07 22:16:45 +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
marisa
cdd8e19716 Merge pull request #792 from rust-lang/all-contributors/add-cseltol
docs: add cseltol as a contributor for doc
2021-07-05 18:57:05 +02:00
allcontributors[bot]
91d86a1de9 docs: update .all-contributorsrc [skip ci] 2021-07-05 16:56:57 +00:00
allcontributors[bot]
6a10f900b4 docs: update README.md [skip ci] 2021-07-05 16:56:56 +00:00
marisa
9b9a89c79a Merge pull request #668 from cseltol/main
fix(installation): first PowerShell command
2021-07-05 18:56:34 +02:00
marisa
123e6426d1 Merge pull request #789 from kolbma/exercise-clippy1-hint-390
chore: clippy1 hint enhancement
2021-06-30 12:10:02 +02:00
marisa
427ec6b2e4 Merge pull request #790 from rust-lang/all-contributors/add-jazzplato
docs: add jazzplato as a contributor for code
2021-06-30 12:06:16 +02:00
allcontributors[bot]
03dcb582e6 docs: update .all-contributorsrc [skip ci] 2021-06-30 10:06:07 +00:00
allcontributors[bot]
1043a06124 docs: update README.md [skip ci] 2021-06-30 10:06:06 +00:00
Richthofen
d20e413a68 feat(cli): Add "next" to run the next unsolved exercise. (#785)
* Add "run next" to run the next unsolved exercise.

* Fix a grammar error in the message.

* Update README.md with the suggested change

Co-authored-by: marisa <mokou@fastmail.com>

* Update the README.md for "rustlings hint next".

Co-authored-by: marisa <mokou@fastmail.com>
2021-06-30 12:05:49 +02:00
arlecchino
9bf4c5e8df chore: clippy1 hint enhancement
Added some explanation and links about floating point representation and to use the clippy suggestion. (fixes #390)
2021-06-29 20:47:32 +02:00
marisa
633303d4b8 Merge pull request #787 from kolbma/exercise-iterator3-hint
chore: Update hint of iterators3
2021-06-29 13:49:17 +02:00
arlecchino
a4a1098766 Update info.toml
Co-authored-by: marisa <mokou@fastmail.com>
2021-06-29 13:41:16 +02:00
marisa
0bd459dcac Merge pull request #788 from rust-lang/all-contributors/add-kolbma
docs: add kolbma as a contributor for doc
2021-06-29 12:46:49 +02:00
allcontributors[bot]
3b4514b686 docs: update .all-contributorsrc [skip ci] 2021-06-29 10:46:41 +00:00
allcontributors[bot]
2e05606edc docs: update README.md [skip ci] 2021-06-29 10:46:40 +00:00
marisa
c8c1b87a01 Merge pull request #786 from kolbma/git-clone-release-tag
docs: Faster git clone command
2021-06-29 12:46:28 +02:00
arlecchino
34ea029df8 chore: Update hint of iterators3
`collect()` needs some hint for standard_library_types/iterators3 exercise with doc link for understanding different return types via `FromIterator`.
2021-06-29 12:03:18 +02:00
arlecchino
3a4433d5a2 docs: Faster git clone command
Clone only release tag without history
2021-06-28 17:08:53 +02: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
de6c45ad24 Merge pull request #779 from rust-lang/all-contributors/add-hyperparabolic
docs: add hyperparabolic as a contributor for code
2021-06-24 14:18:02 +02:00
allcontributors[bot]
fadade8592 docs: update .all-contributorsrc [skip ci] 2021-06-24 12:17:32 +00:00
allcontributors[bot]
d91044f3a2 docs: update README.md [skip ci] 2021-06-24 12:17:31 +00: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
marisa
84d8305730 Merge pull request #778 from rust-lang/all-contributors/add-kayuapi
docs: add kayuapi as a contributor for content
2021-06-24 14:10:33 +02:00
allcontributors[bot]
73777980f1 docs: update .all-contributorsrc [skip ci] 2021-06-24 12:10:24 +00:00
allcontributors[bot]
75788b1148 docs: update README.md [skip ci] 2021-06-24 12:10:23 +00:00
marisa
dd9b2ddc89 Merge pull request #773 from kayuapi/patch-1
fix(variables5): confine the answer further
2021-06-24 14:10:02 +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
4e079fdd08 chore(iterators5): conciseness hint 2021-06-06 17:45:35 -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
marisa
a2f0401c4c Merge pull request #762 from tlyu/move-semantics5-fixes
fix: move_semantics5 hints
2021-05-23 15:41:56 +02: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
Taylor Yu
4c46e5e1a3 chore: minor typos in move_semantics5 hints 2021-05-22 21:56:14 -05:00
marisa
4da9e7ee29 Merge pull request #758 from rust-lang/all-contributors/add-sateeshkumarb
docs: add sateeshkumarb as a contributor
2021-05-17 14:11:15 +02:00
allcontributors[bot]
72e615aa7a docs: update .all-contributorsrc [skip ci] 2021-05-17 12:11:05 +00:00
allcontributors[bot]
cd02abc481 docs: update README.md [skip ci] 2021-05-17 12:11:04 +00:00
Sateesh
399ab328d8 feat: Add move_semantics5 exercise. (#746)
* feat: Add move_semantics5 exercise.

* feat: Add option3 exercise

* Address review comments. Fix typos, sentence formatting.

* Remove unwanted newline.

* Address review comments: make comment inline, fix format in print.
2021-05-17 14:10:40 +02:00
marisa
809ec2ce01 Merge pull request #755 from tlyu/dyn-error-hints
fix(try_from_into, from_str): hints for dyn Error
2021-05-17 14:09:44 +02:00
Taylor Yu
11d2cf0d60 fix(try_from_into, from_str): hints for dyn Error
Add hints about how to return the correct type for functions that
return `Result<_, Box<dyn Error>`. Some feedback from Discord suggests
that people run into trouble with that.
2021-05-15 14:01:17 -05:00
marisa
dbb2624403 Merge pull request #751 from juanprq/main
fix: remove trailing whitespace
2021-05-13 17:20:47 +02:00
Juan Pablo Ramirez
4d4fa77459 fix: remove trailing whitespaces from iterators1 2021-05-12 10:20:07 -05:00
Juan Pablo Ramirez
3145794084 fix: add hints to generics1 and generics2 exercises 2021-05-11 14:50:05 -05:00
Juan Pablo Ramirez
d9b69bd1a0 fix: remove trailing whitespace 2021-05-09 17:58:54 -05:00
marisa
7cd635fa84 Merge pull request #740 from rust-lang/all-contributors/add-PiDelport
docs: add PiDelport as a contributor
2021-05-01 12:12:51 +02:00
allcontributors[bot]
ce40e201f0 docs: update .all-contributorsrc [skip ci] 2021-05-01 10:12:43 +00:00
allcontributors[bot]
404f3ef465 docs: update README.md [skip ci] 2021-05-01 10:12:42 +00:00
marisa
e1be594fdd Merge pull request #739 from PiDelport/patch-1
style(standard_library_types): stray line break
2021-05-01 12:12:29 +02:00
Pi Delport
9569c9a9e7 style(standard_library_types): stray line break 2021-04-29 23:31:26 +02:00
apogeeoak
f78c480208 fix(cli): Move long text strings into constants. 2021-04-27 17:14:54 -04:00
Martin HART
8794b40bc6 Merge branch 'correct-small-typo' of github.com:martinhartxyz/rustlings into correct-small-typo 2021-04-27 21:12:44 +02:00
Martin HART
86cc85295a fix: Correct small typo in exercises/conversions/from_str.rs 2021-04-27 21:11:40 +02:00
Martin HART
166a53946c Correct small typo in exercises/conversions/from_str.rs 2021-04-27 20:22:13 +02:00
marisa
91530f5716 Merge pull request #736 from maartentibau/quiz1_add_explicit_test_40
chore: Update quiz1.rs add explicit test for 40
2021-04-27 10:20:50 +02:00
apogeeoak
9b8de65525 fix(intro1): Add compiler error explanation. 2021-04-26 20:28:17 -04:00
Maarten Tibau
650b1dee54 chore: Update quiz1.rs add explicit test for 40 2021-04-25 19:02:50 +02:00
apogeeoak
21c9f44168 feat(intro): Add intro section. 2021-04-24 13:15:34 -04:00
apogeeoak
7f0d2c2bf0 chore(iterators5): Minor formatting improvements. 2021-04-24 12:42:06 -04:00
marisa
6b6dc9dd48 Merge pull request #731 from rust-lang/all-contributors/add-stoiandan
docs: add stoiandan as a contributor
2021-04-24 17:36:48 +02:00
allcontributors[bot]
3a9ec4192d docs: update .all-contributorsrc [skip ci] 2021-04-24 15:36:39 +00:00
allcontributors[bot]
4f7dbbd2c3 docs: update README.md [skip ci] 2021-04-24 15:36:38 +00:00
marisa
8c37db1a23 Merge pull request #730 from stoiandan/main
updated README.md; specify need for admin rights
2021-04-24 17:36:19 +02:00
Dan Stoian
c6b7ad8878 updated README.md; specify need for admin rights 2021-04-24 18:32:13 +03:00
Zerotask
4a384cae4a docs(option): improve further information 2021-04-24 12:12:49 +02:00
mokou
84461c20cb release: 4.4.0 2021-04-24 11:57:00 +02:00
marisa
3cddda56fc Merge pull request #725 from Zerotask/add-hint-corresponding-readme
chore(watch): add hint for the exercises README.md
2021-04-24 11:46:25 +02:00
marisa
37f3069a67 Merge pull request #724 from Zerotask/update-dependencies
chore(deps): update cargo dependencies
2021-04-24 11:45:56 +02:00
marisa
2b2fbe918e Merge pull request #723 from Zerotask/update-exercises-readme
docs(exercises): consistent excersises README.md files
2021-04-24 11:45:37 +02:00
Zerotask
cf42ddc449 chore(watch): add hint for the exercises README.md
rustlings watch will now show an additional hint for the corresponding README.me
2021-04-23 20:28:55 +02:00
Zerotask
eefa656232 chore(deps): update cargo dependencies 2021-04-23 20:07:32 +02:00
Zerotask
249ad44cc0 docs(exercises): updated all exercises readme files
all exercises readme files now have a unified structure and a description
2021-04-23 19:54:31 +02:00
marisa
54804e344d Merge pull request #721 from Zerotask/add-further-help-for-generics3
docs(generics): add bounds help
2021-04-23 15:05:00 +02:00
marisa
1c334de6fd Merge pull request #718 from Zerotask/add-further-help-to-error-excersis
docs(errors): add additional help for Result/Boxing
2021-04-23 15:04:47 +02:00
Zerotask
f253103a31 docs(generics): add bounds help
add help for bounds provided by the rust by example book
2021-04-22 22:11:04 +02:00
Zerotask
1120db57a6 docs(errors): add additional help for Result/Boxing
add additional help information provided by the rust by example book
2021-04-22 21:32:29 +02:00
marisa
afa661cff4 Merge pull request #715 from rust-lang/feat/declap
feat: Replace clap with argh
2021-04-21 16:33:07 +02:00
mokou
347f30bd86 fix(main): Let find_exercise work with borrows 2021-04-21 16:21:56 +02:00
marisa
127773f3f5 Merge pull request #717 from rust-lang/all-contributors/add-bmacer
docs: add bmacer as a contributor
2021-04-21 14:50:37 +02:00
allcontributors[bot]
8d0490bd70 docs: update .all-contributorsrc [skip ci] 2021-04-21 12:50:27 +00:00
allcontributors[bot]
293dfb35d5 docs: update README.md [skip ci] 2021-04-21 12:50:26 +00:00
Brandon Macer
81be404487 feat(arc1): Add more details to description and hint (#710)
Co-authored-by: bmacer <bmacer@cisco.com>
Co-authored-by: marisa <mokou@fastmail.com>
Co-authored-by: Roberto Vidal <vidal.roberto.j@gmail.com>
2021-04-21 14:50:03 +02:00
mokou
6177b6e126 chore: Fix integration tests 2021-04-21 14:47:53 +02:00
marisa
79cc657917 Merge pull request #646 from apogeeoak/iterator
Added iterators5.rs exercise.
2021-04-21 10:10:50 +02:00
mokou
7928122fce feat: Replace clap with argh
I’ve been wanting to do this for a while, but always procrastinated on it. We’ve been using Clap since the 2.0 rewrite, but Clap is known to be a fairly heavy library. Since Rustlings is usually peoples’ first contact with a Rust compilation, I think it’s in our best interests that this complation is as fast as possible. In effect, replacing Clap with the smaller, structopt-style `argh` reduces the amount of crates needing to be compiled from 82 to 60.

I also think this makes the code way easier to read, we don’t need to use Clap’s methods anymore, but can switch over to using pure Rust methods, e.g., switches are booleans, options are Option<String>s or the like, and subcommands are just structs.
2021-04-21 10:08:26 +02:00
apogeeoak
9c88ea9126 Improved iterators5.rs explanation. 2021-04-20 18:55:04 -04:00
marisa
2b766ef9f9 Merge pull request #648 from apogeeoak/iterator2
Moved iterators2.rs errors out of tests.
2021-04-20 11:24:10 +02:00
marisa
bd3d9ac9d5 Merge pull request #649 from apogeeoak/iterator3
Enabled iterators3.rs to run without commented out tests.
2021-04-20 11:22:39 +02:00
marisa
aa0db8379c Merge pull request #714 from rust-lang/all-contributors/add-hongshaoyang
docs: add hongshaoyang as a contributor
2021-04-20 11:19:49 +02:00
allcontributors[bot]
eadd41a9ec docs: update .all-contributorsrc [skip ci] 2021-04-20 09:19:39 +00:00
allcontributors[bot]
fab2eb9833 docs: update README.md [skip ci] 2021-04-20 09:19:38 +00:00
Shao Yang Hong
6bd791f2f4 fix(structs): Add 5.3 to structs/README (#652)
Co-authored-by: Shao Yang Hong <shaoyang.hong@ninjavan.co>
2021-04-20 11:19:24 +02:00
marisa
ec5f80dce1 Merge pull request #713 from rust-lang/all-contributors/add-k12ish
docs: add k12ish as a contributor
2021-04-20 11:18:32 +02:00
allcontributors[bot]
65cdc856ae docs: update .all-contributorsrc [skip ci] 2021-04-20 09:18:23 +00:00
allcontributors[bot]
472f61485e docs: update README.md [skip ci] 2021-04-20 09:18:22 +00:00
k12ish
b4de659438 fix(option2): Rename uninformative variables (#675)
Renaming uninformative names like `optional_value`, `value`, `optional_values_vec` and `value` helps users distinguish between the two parts of the task.
2021-04-20 11:18:05 +02:00
marisa
a37a8818c8 Merge pull request #712 from rust-lang/all-contributors/add-arthas168
docs: add arthas168 as a contributor
2021-04-20 11:16:25 +02:00
allcontributors[bot]
bdf01aa174 docs: update .all-contributorsrc [skip ci] 2021-04-20 09:16:16 +00:00
allcontributors[bot]
a941c69f09 docs: update README.md [skip ci] 2021-04-20 09:16:15 +00:00
Pete Pavlovski
72aaa15e6a fix(hashmap2): Update incorrect assertion (#660)
The test description says "at least five types of fruit", but the test itself is checking for exactly five types of fruit, which was a bit misleading for newcomers like me :) 

A simple change from "==" to ">=" should do the trick and successfully check for the "at least" condition.
2021-04-20 11:15:49 +02:00
marisa
3a06de71a8 Merge pull request #708 from Zerotask/list-command-added-to-readme
docs: added hint for rustlings list command
2021-04-20 11:10:38 +02:00
marisa
5e2b39a5c1 Merge pull request #711 from rust-lang/all-contributors/add-Zerotask
docs: add Zerotask as a contributor
2021-04-20 11:09:41 +02:00
allcontributors[bot]
63c942233e docs: update .all-contributorsrc [skip ci] 2021-04-20 09:09:31 +00:00
allcontributors[bot]
2612edc133 docs: update README.md [skip ci] 2021-04-20 09:09:30 +00:00
marisa
e2ce9f42b5 Merge pull request #707 from Zerotask/list-command-progress-info
feat(list): added progress info
2021-04-20 11:09:14 +02:00
Patrick Hintermayer
1c6f7e4b7b feat(list): updated progress percentage 2021-04-19 09:39:05 +02:00
Zerotask
e2c41903ad docs: added hint for rustlings list command
Added hint for `rustlings list` to the "Doing exercises" section.
2021-04-18 16:07:30 +02:00
Zerotask
bd48544e25 style: formatted files with rustfmt 2021-04-18 15:40:47 +02:00
Zerotask
c0e3daacaf feat(list): added progress info
Added a progress info at the bottom of the list for command: rustlings list

closes #705
2021-04-18 15:37:41 +02:00
Abdou Seck
f2ad3a6a0b Merge pull request #697 from WowSuchRicky/main
Rename 'Lichi' to 'Lychee' in the fruit example
2021-04-13 10:40:07 -04:00
Abdou Seck
caf921a01f Merge pull request #674 from Morsicus/fix/collections-exercises-naming
Update collections exercises naming
2021-04-13 10:39:18 -04:00
WowSuchRicky
b790bafc02 Rename lichi to lychee in the fruit example 2021-04-09 14:08:02 -07:00
Abdou Seck
ad3cd54cce Merge pull request #694 from rust-lang/all-contributors/add-tlyu
docs: add tlyu as a contributor
2021-04-05 07:27:42 -04:00
allcontributors[bot]
1a6a725f88 docs: update .all-contributorsrc [skip ci] 2021-04-05 11:27:17 +00:00
allcontributors[bot]
1ad20d94ff docs: update README.md [skip ci] 2021-04-05 11:27:16 +00:00
Abdou Seck
995c6f0fb1 Merge pull request #693 from tlyu/trait-obj-tryfrom
fix: use trait objects for try_from_into and from_str
2021-04-05 07:26:19 -04:00
Taylor Yu
c3e7b83178 fix: use trait objects for from_str
Use `Box<dyn error::Error>` to allow solutions to use `?` to propagate 
errors.
2021-04-04 18:56:10 -05:00
Taylor Yu
2e93a588e0 fix: use trait objects for try_from_into
Use `Box<dyn error::Error>` to allow solutions to use `?` to propagate
errors.  In the tests, explicitly check `is_ok()` instead of trying to
force the error type to `String` (or other `PartialEq` type) using
`assert_eq!()`.
2021-04-04 12:41:32 -05:00
marisa
9aeca3f97e Merge pull request #692 from rust-lang/all-contributors/add-flakolefluk
docs: add flakolefluk as a contributor
2021-04-04 09:44:02 +02:00
allcontributors[bot]
2193fff4bb docs: update .all-contributorsrc [skip ci] 2021-04-04 07:43:51 +00:00
allcontributors[bot]
aec2c65c63 docs: update README.md [skip ci] 2021-04-04 07:43:50 +00:00
Ignacio Le Fluk
a6509cc4d5 fix(functions3): improve function argument type (#687) 2021-04-04 09:43:25 +02:00
marisa
a02b279750 chore: Provide a working Windows installation link 2021-03-23 09:10:40 +01:00
marisa
ece841f5ce Merge pull request #680 from rust-lang/all-contributors/add-blerchy
docs: add blerchy as a contributor
2021-03-22 13:37:10 +01:00
allcontributors[bot]
2a6e4dc8a6 docs: update .all-contributorsrc [skip ci] 2021-03-22 12:37:02 +00:00
allcontributors[bot]
c163011cc0 docs: update README.md [skip ci] 2021-03-22 12:37:01 +00:00
marisa
b350945a16 Merge pull request #676 from blerchy/feat/no-emoji
Replace emojis when NO_EMOJI env variable present
2021-03-22 13:36:26 +01:00
marisa
1ef368a69d Merge pull request #679 from rust-lang/new-install-urls
chore: Update install URLs
2021-03-21 16:35:44 +01:00
marisa
8dc587b01a chore: Update install URLs 2021-03-21 16:34:21 +01:00
allcontributors[bot]
550c4293ed docs: add chapeupreto as a contributor (#678)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2021-03-20 21:13:35 +01:00
Rod Elias
3df094713f chore: capitalize c letter
By capitalizing the `c` letter it makes clear that we're talking about the C programming language.
2021-03-20 21:12:49 +01:00
Matt Lebl
01e7f27aa6 refactor: change from match to if for NO_EMOJI 2021-03-20 11:53:40 -07:00
Matt Lebl
8d62a99637 feat: Replace emojis when NO_EMOJI env variable present 2021-03-19 02:16:07 -07:00
Mickael Fortunato
ab9995e76e doc: Update collections exercises instruction to match the standard naming 2021-03-18 19:11:15 +01:00
Mickael Fortunato
bef39b1259 fix(collections): Naming exercises for vectors and hashmap 2021-03-18 19:11:04 +01:00
Pascal H
0d894e6ff7 fix(quiz3): Force an answer to Q2 (#672)
Add also an example of unimplemented!() macro.
2021-03-16 10:14:25 +01:00
allcontributors[bot]
be9510539e docs: add hpwxf as a contributor (#671)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2021-03-15 09:14:41 +01:00
Pascal H
3bce2ef8d6 chore: clarify collections documentation
C++ `map` is more like BTreeMap.

`unordered_map` in C++(11) is the equivalent of `HashMap` in Rust.
(+ additional like for references).
2021-03-15 09:14:12 +01:00
Ivan Nerazumov
aa9a943ddf fix(installation): first PowerShell command
ExecutionPolicy to RemoteSigned command was fixed because the old command was getting denied access to change the Execution Policy property
2021-03-13 18:45:52 +07:00
Darius Wiles
ebdb66c7bf fix(structs2): correct grammar in hint (#663) 2021-03-13 12:14:44 +01:00
Darius Wiles
9f3e8c2dde fix(structs3): reword heading comment (#664) 2021-03-13 12:14:02 +01:00
apogeeoak
96c56ab08a chore: changed errors3 mode from test to compile 2021-03-12 20:04:29 +01:00
allcontributors[bot]
04dbf03ace docs: add cadolphs as a contributor (#667)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2021-03-12 18:37:58 +01:00
cadolphs
05a753fe63 fix: add check to prevent naive implementation of is_international
* fix(structs3): Add check to prevent naive implementation

* chore(structs3): Add a missed newline after the test I added
2021-03-12 18:36:35 +01:00
allcontributors[bot]
815edb7003 docs: add cjwyett as a contributor (#666)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2021-03-12 15:39:40 +01:00
Cyrus Wyett
5157f56875 chore: fix typo
is however some --> are however some
2021-03-12 15:38:28 +01:00
allcontributors[bot]
3f5abca215 docs: add circumspect as a contributor
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2021-03-12 15:28:03 +01:00
circumspect
833df0b8b3 chore: fix typo
Co-authored-by: Chenkail <40770208+Chenkail@users.noreply.github.com>
2021-03-12 15:26:57 +01:00
marisa
6742860ea5 Merge pull request #658 from rust-lang/all-contributors/add-Crell
docs: add Crell as a contributor
2021-02-25 11:21:11 +01:00
allcontributors[bot]
797e6d45c0 docs: update .all-contributorsrc [skip ci] 2021-02-25 10:20:54 +00:00
allcontributors[bot]
320de0d921 docs: update README.md [skip ci] 2021-02-25 10:20:53 +00:00
marisa
5eed505d74 Merge pull request #656 from Crell/spelling-fix
fix: Spelling error
2021-02-25 11:20:39 +01:00
Larry Garfield
91ee27f22b fix: Spelling error 2021-02-24 15:03:26 -06:00
Jirka Kremser
5f7c89f85d fix(from_str): Correct typos
typos in the comments
2021-02-21 21:50:17 +01:00
apogeeoak
c6712dfccd fix(iterators3): Enabled iterators3.rs to run without commented out tests. 2021-02-12 15:36:53 -05:00
apogeeoak
baf4ba175b fix(iterators2): Moved errors out of tests.
Closes #359
2021-02-11 21:24:32 -05:00
apogeeoak
b29ea17ea9 feat: Added iterators5.rs exercise. 2021-02-10 18:03:29 -05:00
marisa
ab57c26cf9 Merge pull request #644 from apogeeoak/clippy
Updated source to follow clippy suggestions.
2021-02-10 10:37:13 +01:00
marisa
98e5e8835e Merge pull request #645 from rust-lang/all-contributors/add-apogeeoak
docs: add apogeeoak as a contributor
2021-02-10 10:36:57 +01:00
allcontributors[bot]
f5158ece1a docs: update .all-contributorsrc [skip ci] 2021-02-10 09:36:48 +00:00
allcontributors[bot]
d65b4a9a93 docs: update README.md [skip ci] 2021-02-10 09:36:47 +00:00
marisa
8404947bc0 Merge pull request #642 from apogeeoak/contributing
Fixed grammar in contributing.md.
2021-02-10 10:36:04 +01:00
apogeeoak
2e84f34cf3 chore: Updated source to follow clippy suggestions. 2021-02-09 18:21:18 -05:00
apogeeoak
726805f064 docs: Fixed grammar in contributing.md. 2021-02-09 17:43:53 -05:00
marisa
b4a4138559 Merge pull request #641 from rust-lang/all-contributors/add-tal-zvon
docs: add tal-zvon as a contributor
2021-02-07 12:22:49 +01:00
allcontributors[bot]
f1d2b3a39a docs: update .all-contributorsrc [skip ci] 2021-02-07 11:22:33 +00:00
allcontributors[bot]
1f9d006858 docs: update README.md [skip ci] 2021-02-07 11:22:32 +00:00
Tal
cc266d7d80 fix(move_semantics4): Remove redundant "instead" (#640) 2021-02-07 12:22:13 +01:00
marisa
fff72afe2e Merge pull request #636 from rust-lang/all-contributors/add-jbaber
docs: add jbaber as a contributor
2021-01-30 17:12:39 +01:00
allcontributors[bot]
c1abd13b5c docs: update .all-contributorsrc [skip ci] 2021-01-30 16:12:28 +00:00
allcontributors[bot]
75802c14b2 docs: update README.md [skip ci] 2021-01-30 16:12:27 +00:00
John Baber-Lucero
cddc1e86e7 fix(info): Fix typo (#635)
Co-authored-by: John Baber-Lucero <git@frundle.com>
2021-01-30 17:12:06 +01:00
fmoko
24ea42ce61 Merge pull request #627 from rust-lang/all-contributors/add-jfchevrette
docs: add jfchevrette as a contributor
2021-01-22 13:11:43 +01:00
allcontributors[bot]
6102e612fa docs: update .all-contributorsrc [skip ci] 2021-01-22 12:11:34 +00:00
allcontributors[bot]
52bde71166 docs: update README.md [skip ci] 2021-01-22 12:11:33 +00:00
Abdou Seck
15a79cfe9c Merge pull request #626 from jfchevrette/patch-1
Fix instructions(steps) for conversions/from_str exercice
2021-01-21 08:10:25 -05:00
Jean-Francois Chevrette
15e71535f3 fix(from_str): test for error instead of unwrap/should_panic 2021-01-21 07:55:22 -05:00
mokou
9f988bfe29 docs: Remove duplicate uninstallation section 2021-01-17 13:00:50 +01:00
fmoko
e8d1baa4b5 Merge pull request #599 from AbdouSeck/improve-list-command
feat(cli): Improve the list command with options, and then some
2021-01-17 12:37:58 +01:00
Abdou Seck
8bbe4ff138 feat(cli): Improve the list command with options, and then some
1.
`rustlings list` should now display more than just the exercise names.
Information such as file paths and exercises statuses should be displayed.
The `--paths` option limits the displayed fields to only the path names; while the `--names`
option limits the displayed fields to only exercise names.
You can also control which exercises are displayed, by using the `--filter` option, or
the `--solved` or `--unsolved` flags.

Some use cases:
- Fetching pending exercise files with the keyword "conversion" to pass to my editor:
```sh
vim $(rustlings list --filter "conversion" --paths --unsolved)
```

- Fetching exercise names with keyword "conversion" to pass to `rustlings run`:
```sh
for exercise in $(rustlings list --filter "conversion" --names)
do
    rustlings run ${exercise}
done
```

2.
This should also fix #465, and will likely fix #585, as well.
That bug mentioned in those issues has to do with the way the `watch` command handler fetches the pending exercises.
Going forward, the least recently updated exercises along with all the other exercises in a pending state are fetched.
2021-01-08 13:21:00 -05:00
Abdou Seck
0b9220c1fc Add looks_done method to Exercise to expose a resolution state 2021-01-08 13:21:00 -05:00
Abdou Seck
0d65753fdb Merge pull request #622 from lntuition/conversions_more_utc
feat(conversions): Add more unit tests to `from_str` and `from_into` exercises.
2021-01-08 13:18:24 -05:00
Sang-Heon Jeon
4f1374a6e7 feat(from_into) : add test for checking unnecessary trailing value 2021-01-09 00:08:38 +09:00
Sang-Heon Jeon
5a0521e92c feat(from_str) : add test for checking unnecessary trailing value 2021-01-09 00:07:13 +09:00
fmoko
fea86c29d6 chore: Remove Readme GIF 2021-01-08 14:01:04 +01:00
fmoko
9c4614f7e6 Merge pull request #619 from rust-lang/all-contributors/add-chrizel
docs: add chrizel as a contributor
2021-01-06 16:54:47 +01:00
allcontributors[bot]
c24a78ae94 docs: update .all-contributorsrc [skip ci] 2021-01-06 15:54:34 +00:00
allcontributors[bot]
621816fb56 docs: update README.md [skip ci] 2021-01-06 15:54:33 +00:00
fmoko
cfae54d361 Merge pull request #618 from chrizel/patch-1
fix(threads1): line number correction
2021-01-06 16:54:16 +01:00
Christian Zeller
7857b0a689 fix(threads1): line number correction 2021-01-06 13:47:20 +01:00
Marius Ungureanu
10965920fb fix(move_semantics4): Small readbility improvement (#617)
* Small readbility improvement move_semantics4 doc

* Remove `an` as it refers to the argument
2021-01-06 10:12:33 +01:00
fmoko
d2e7ecabd8 Merge pull request #616 from rust-lang/all-contributors/add-wsh
docs: add wsh as a contributor
2021-01-04 14:12:24 +01:00
fmoko
5772589dc3 Merge pull request #615 from wsh/docfixes
docs: mention flatten in the options2 hint
2021-01-04 14:12:11 +01:00
allcontributors[bot]
6df08b411b docs: update .all-contributorsrc [skip ci] 2021-01-04 13:12:11 +00:00
allcontributors[bot]
c355ac6593 docs: update README.md [skip ci] 2021-01-04 13:12:10 +00:00
Will Hayworth
e9b42bbc2a docs: mention flatten in the options2 hint 2021-01-03 03:42:39 -08:00
Abdou Seck
1283aa3bd8 Merge pull request #606 from RoelofWobben/ghost-RoelofWobben-patch-1
fix: Update README.md for Windows users to exclude the rustlings directory
from the list of directories scanned by Anti-Virus programs.
2020-12-31 11:13:03 -05:00
RoelofWobben
ff6cba7205 Update README.md 2020-12-31 10:57:37 -05:00
fmoko
d0107f7921 Merge pull request #609 from xehpuk/patch-1
fix: typo in default out text
2020-12-31 16:12:13 +01:00
xehpuk
644c49f1e0 fix: typo in default out text 2020-12-30 22:56:04 +01:00
mokou
a303d508cf release: 4.3.0 2020-12-29 11:39:26 +01:00
mokou
44d39112ff feat: Rewrite default out text
This has been in place for a long time now, before we had an install
script, so it ended up repeating a bunch of the same things that the
install script does automatically. I rewrote it so that it gives more
helpful information about how you're supposed to do Rustlings.
Hopefully this will reduce the number of "I started Rustlings and it
gave me an error" issues (no offense to anyone who opened one of those,
it was pretty unclear that it _wasn't_ an error).
2020-12-29 11:34:52 +01:00
mokou
28020d0c54 docs: Add note on uninstalling to README 2020-12-29 11:23:08 +01:00
Axel Viala
0ef95947cc fix(functions2): Change signature to trigger precise error message: (#605)
Now trigger this error:
```
error: expected type, found `)`
  --> exercises/functions/functions2.rs:10:16
   |
10 | fn call_me(num:) {
   |                ^ expected type

```
2020-12-27 12:36:38 +01:00
allcontributors[bot]
4ac70a99ae docs: add seancad as a contributor
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-12-15 08:33:47 +01:00
seancad
bcf14cf677 fix: update structs README 2020-12-15 08:32:46 +01:00
fmoko
1dae782cd4 Merge pull request #598 from JuliaCao/update_exec_order
fix: added missing exercises to info.toml
2020-12-13 02:30:57 +01:00
JuliaCao
90cfb6ff28 fix: added missing exercises to info.toml 2020-12-12 10:34:59 -08:00
allcontributors[bot]
26110da7ca docs: add pcn as a contributor
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-12-08 10:12:57 +01:00
Peter N
30644c9a06 fix: gives a bit more context to magic number 2020-12-08 10:08:25 +01:00
JuliaCao
033bf1198f feat: match exercise order to book chapters (#541)
Added exercise to book chapter mapping table to exercise README
2020-12-07 15:37:19 +01:00
fmoko
cdc7d92e57 Merge pull request #592 from tinkhauser/vec1_bugfix
fix(vec1): Have test compare every element in a and v
2020-12-06 15:09:45 +01:00
fmoko
af0e3b8f17 Merge pull request #594 from xakon/fix/try_from_into
feat(try_from_into): remove duplicate annotation
2020-12-03 18:23:48 +01:00
Christos Kontas
04f1d079aa feat(try_from_into): remove duplicate annotation 2020-12-03 17:51:30 +01:00
Jacob Tinkhauser
9b6c629397 fix(vec1): Have test compare every element in a and v
The previous test would stop comparing elements in array a and vec v upon reaching the last element of either. This resulted in the test passing even if v did not contain all the elements in a. This change to the test fixes that bug and should only pass if all the elements in a and v are present and equal.
2020-11-29 01:35:14 +00:00
fmoko
5aa467bef2 Merge pull request #587 from wh5a/bugfix
fix(try_from_into): type error
2020-11-12 16:36:50 +01:00
fmoko
af7ad27f89 chore: Remove buildkite build file 2020-11-12 09:50:55 +01:00
fmoko
d6d57bfbb8 docs: Remove buildkite badge from README 2020-11-12 09:50:39 +01:00
Wei Hu
4f4cfcf3c3 fix(try_from_into): type error 2020-11-11 21:02:00 -08:00
Brock
fa9f522b7f feat: Crab? (#586)
Crab?
2020-11-11 23:06:14 +01:00
Caleb Webber
838f9f3008 feat: add "rustlings list" command 2020-11-10 18:36:19 +01:00
JP
96347df9df fix(try_from_into): Update description (#584)
Description update
2020-11-08 19:30:40 +01:00
Brock
9334783da3 fix(structs1): Adjust wording (#573)
Co-authored-by: fmoko <mokou@posteo.de>
2020-11-08 10:31:45 +01:00
mokou
964b2a331d release: 4.2.0 2020-11-07 14:21:10 +01:00
fiplox
95ccd92616 feat(try_from_into): Add tests (#571)
Co-authored-by: Volodymyr Patuta <6977238-fiplox@users.noreply.gitlab.com>
2020-11-07 14:01:39 +01:00
JP
197d3a3d89 fix(iterators2): Update description (#578)
grammar fix in the description
2020-11-07 13:54:14 +01:00
fmoko
a7ddd747ca Merge pull request #582 from seeplusplus/inotify-watch-error
fix: log error output when inotify limit is exceeded
2020-11-07 13:53:35 +01:00
Caleb Webber
d61b4e5a13 fix: log error output when inotify limit is exceeded
closes #472
2020-11-05 19:30:50 -05:00
allcontributors[bot]
68e646f8aa docs: add seeplusplus as a contributor 2020-11-05 10:03:43 +01:00
Caleb Webber
21bfb2d477 fix(installation): Update the MinRustVersion
closes #577df

Co-authored-by: Caleb Webber <seeplusplus@users.noreply.github.com>
2020-11-05 09:59:25 +01:00
fmoko
a9dae71188 Merge pull request #574 from jrvidal/temp_file
fix: more unique temp_file
2020-10-31 12:57:33 +01:00
fmoko
dd84cc5fd4 Merge pull request #575 from rust-lang/all-contributors/add-sazid 2020-10-30 20:29:47 +01:00
allcontributors[bot]
51631f4c2e docs: update .all-contributorsrc [skip ci] 2020-10-30 19:29:37 +00:00
allcontributors[bot]
535a8c8243 docs: update README.md [skip ci] 2020-10-30 19:29:36 +00:00
fmoko
7abfbd23d0 Merge pull request #572 from sazid/main 2020-10-30 20:28:46 +01:00
sazid
633c00cf80 feat: Add HashMap exercises 2020-10-31 01:11:04 +06:00
sazid
0c12fa31c5 feat: Add Vec exercises 2020-10-31 01:10:49 +06:00
Roberto Vidal
5643ef05bc fix: more unique temp_file 2020-10-30 14:39:28 +01:00
fmoko
f38f42f17d Merge pull request #561 from notmatt/mbs-fixups 2020-10-14 17:22:49 +02:00
Matthew Smillie
472d8592d6 fix(primitive_types6): remove 'unused doc comment' warning 2020-10-13 23:20:17 -07:00
Matthew Smillie
4fb230daf1 fix(primitive_types6): missing comma in test 2020-10-13 23:18:41 -07:00
Rastamo
e6bde22f9c chore: primitive_types6 mode changed to test (#559)
primitive_types6 exercise was changed to test yesterday, but info.toml file wasn't updated.
I think this change should fix it.
2020-10-11 14:00:03 +02:00
allcontributors[bot]
cc5b9b772a docs: add AnnikaCodes as a contributor (#557)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: fmoko <mokou@posteo.de>
2020-10-10 17:08:22 +02:00
allcontributors[bot]
ded1474bbb docs: add darnuria as a contributor (#554)
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-10-10 16:07:15 +02:00
Axel Viala
2b1fb2b739 feat(primitive_types6): Add a test (#548)
Co-authored-by: Annika <56906084+AnnikaCodes@users.noreply.github.com>
Co-authored-by: fmoko <mokou@posteo.de>
2020-10-10 16:04:19 +02:00
Ryan McQuen
18e0bfef1d fix(quiz3): Second test is for odd numbers, not even. (#553) 2020-10-10 13:11:57 +02:00
fmoko
3be760dc38 Merge pull request #552 from rust-lang/all-contributors/add-ryanpcmcquen 2020-10-09 02:16:07 +02:00
allcontributors[bot]
29dd0b1e41 docs: update .all-contributorsrc [skip ci] 2020-10-09 00:15:54 +00:00
allcontributors[bot]
e1fdfbb062 docs: update README.md [skip ci] 2020-10-09 00:15:53 +00:00
mokou
89c07b5e43 release: 4.1.0 2020-10-05 18:42:26 +02:00
fmoko
9b5350eab1 Merge pull request #546 from jienius/doc-improve-readme
docs: Fix grammatical errors in Readme
2020-10-02 12:52:34 +02:00
jieniu$
5382cd696a docs: Fix grammatical errors in Readme 2020-10-01 20:15:36 -06:00
fmoko
69fc9ce10e Merge pull request #545 from YJDoc2/main 2020-10-01 12:17:05 +02:00
Yashodhan Joshi
13ac6f38dc Merge branch 'master' of https://github.com/YJDoc2/rustlings 2020-10-01 08:34:01 +05:30
Yashodhan Joshi
2ec0bdfd99 fix(variables5) : make shadowing more prominent
closes #375
2020-10-01 08:31:42 +05:30
Alexx Roche
c03e1e6c6c chore: fixed test name 2020-09-27 21:57:51 +02:00
fmoko
2a682abeef Merge pull request #522 from calvinbrown085/adding-test-for-false-case 2020-09-27 17:05:42 +02:00
allcontributors[bot]
9f38b54a2d docs: add greg-el as a contributor
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-09-25 13:43:01 +02:00
Greg Leonard
2933f51949 chore: Change point to comma in from_into.rs
A typo in the fn test_bad_age() hint message had a point rather than comma

Prev:
// Test that "Mark.twenty"

Current:
// Test that "Mark,twenty"
2020-09-25 13:39:52 +02:00
fmoko
a75300b8c7 Merge pull request #536 from rust-lang/all-contributors/add-dev-cyprium 2020-09-22 11:31:53 +02:00
allcontributors[bot]
01f4bb86c3 docs: update .all-contributorsrc [skip ci] 2020-09-22 09:31:42 +00:00
allcontributors[bot]
79c3ada49b docs: update README.md [skip ci] 2020-09-22 09:31:41 +00:00
fmoko
ac276d06fa Merge pull request #535 from rust-lang/all-contributors/add-GaurangTandon 2020-09-22 11:04:45 +02:00
allcontributors[bot]
c7eabe61bb docs: update .all-contributorsrc [skip ci] 2020-09-22 09:04:33 +00:00
allcontributors[bot]
8f28bcf704 docs: update README.md [skip ci] 2020-09-22 09:04:32 +00:00
fmoko
be3b289a10 Merge pull request #534 from rust-lang/all-contributors/add-jmahmood 2020-09-22 10:57:44 +02:00
allcontributors[bot]
19a0c1f3cb docs: update .all-contributorsrc [skip ci] 2020-09-22 08:57:33 +00:00
allcontributors[bot]
dc94fcc6e8 docs: update README.md [skip ci] 2020-09-22 08:57:32 +00:00
fmoko
183237c858 Merge pull request #533 from rust-lang/all-contributors/add-EvanCarroll 2020-09-22 10:56:28 +02:00
allcontributors[bot]
599a44f90f docs: update .all-contributorsrc [skip ci] 2020-09-22 08:56:18 +00:00
allcontributors[bot]
08e9c7aa2f docs: update README.md [skip ci] 2020-09-22 08:56:17 +00:00
fmoko
a893d04e81 Merge pull request #532 from rust-lang/all-contributors/add-siobhanjacobson 2020-09-22 10:55:09 +02:00
allcontributors[bot]
5996bd57ea docs: update .all-contributorsrc [skip ci] 2020-09-22 08:54:54 +00:00
allcontributors[bot]
909b297ae3 docs: update README.md [skip ci] 2020-09-22 08:54:53 +00:00
fmoko
abdc3b2211 Merge pull request #531 from rust-lang/all-contributors/add-wrobstory 2020-09-22 10:52:39 +02:00
allcontributors[bot]
e66d2085b7 docs: update .all-contributorsrc [skip ci] 2020-09-22 08:52:29 +00:00
allcontributors[bot]
4a5e48e88f docs: update README.md [skip ci] 2020-09-22 08:52:28 +00:00
fmoko
3a586a0c19 Merge pull request #530 from rust-lang/all-contributors/add-DiD92 2020-09-22 10:51:01 +02:00
allcontributors[bot]
144dec3fd3 docs: update .all-contributorsrc [skip ci] 2020-09-22 08:50:51 +00:00
allcontributors[bot]
448d116a89 docs: update README.md [skip ci] 2020-09-22 08:50:50 +00:00
fmoko
8493e5d09f Merge pull request #529 from rust-lang/all-contributors/add-apatniv 2020-09-22 10:50:07 +02:00
allcontributors[bot]
83e7365fd8 docs: update .all-contributorsrc [skip ci] 2020-09-22 08:49:57 +00:00
allcontributors[bot]
b6040e6061 docs: update README.md [skip ci] 2020-09-22 08:49:56 +00:00
fmoko
858b9a5119 Merge pull request #528 from rust-lang/all-contributors/add-bertonha 2020-09-22 10:48:48 +02:00
allcontributors[bot]
00fbcd14f7 docs: update .all-contributorsrc [skip ci] 2020-09-22 08:48:39 +00:00
allcontributors[bot]
062f18d353 docs: update README.md [skip ci] 2020-09-22 08:48:38 +00:00
fmoko
58760bce54 Merge pull request #527 from rust-lang/all-contributors/add-jihchi 2020-09-22 10:45:07 +02:00
allcontributors[bot]
ca4f026074 docs: update .all-contributorsrc [skip ci] 2020-09-22 08:44:57 +00:00
allcontributors[bot]
f285ac2281 docs: update README.md [skip ci] 2020-09-22 08:44:56 +00:00
fmoko
0f3db4dbb9 Merge pull request #526 from rust-lang/all-contributors/add-Darrenmeehan 2020-09-22 10:43:33 +02:00
allcontributors[bot]
18b2d451cd docs: update .all-contributorsrc [skip ci] 2020-09-22 08:43:24 +00:00
allcontributors[bot]
b6dd1af7d2 docs: update README.md [skip ci] 2020-09-22 08:43:23 +00:00
fmoko
303c8ee7cd Merge pull request #525 from rust-lang/all-contributors/add-avrong 2020-09-22 10:40:56 +02:00
allcontributors[bot]
98d6b15fc0 docs: update .all-contributorsrc [skip ci] 2020-09-22 08:40:46 +00:00
allcontributors[bot]
77f407dd5f docs: update README.md [skip ci] 2020-09-22 08:40:45 +00:00
fmoko
a12a3ef08b Merge pull request #524 from rust-lang/all-contributors/add-lebedevsergey 2020-09-22 10:39:10 +02:00
allcontributors[bot]
6480fcaf7c docs: update .all-contributorsrc [skip ci] 2020-09-22 08:39:00 +00:00
allcontributors[bot]
f5cb439fe6 docs: update README.md [skip ci] 2020-09-22 08:38:59 +00:00
fmoko
15c9e85690 Merge pull request #523 from rust-lang/all-contributors/add-uce 2020-09-22 10:37:34 +02:00
allcontributors[bot]
8f8a85303b docs: update .all-contributorsrc [skip ci] 2020-09-22 08:36:53 +00:00
allcontributors[bot]
114cc2db21 docs: update README.md [skip ci] 2020-09-22 08:36:52 +00:00
Calvin Brown
bec97b6c76 Fixing test3 to have enough tests to make sure we test all cases 2020-09-21 15:23:19 -05:00
Jannek Squar
114b54cbdb fix(structs3): Small adjustment of variable name
Co-authored-by: Jannek <squar@informatik.uni-hamburg.de>
2020-09-19 21:22:56 +02:00
fmoko
0f16463794 Merge pull request #489 from mukundbhudia/iterators1 2020-09-18 15:23:28 +02:00
Mukund Bhudia
8ff5fde88e Update info.toml for typo fix
Co-authored-by: Andrew Marquez <andy2mgcc@gmail.com>
2020-09-18 10:40:11 +01:00
Ryan McQuen
3286c5ec19 fix(using_as): Add test so that proper type is returned. (#512) 2020-09-07 19:09:27 +02:00
Koalab99
ee7cdc66b3 chore: Removed extra whitespaces
Co-authored-by: Corentin ARNOULD <corentin.arn@gmail.com>
2020-08-27 19:51:19 +02:00
fmoko
9699da4968 Merge pull request #506 from bhgsbatista/patch-1
Make macros4 not compile by default
2020-08-27 11:21:09 +02:00
Samuel Batista
6bb0b48b10 Make macros4 not compile by default
Did you mean this? I'm new to rust and this test passed right away, so unsure what the intention was.
2020-08-26 22:17:03 -04:00
fmoko
70da09eae2 Merge pull request #504 from Ant0wan/quiz2_markers
fix(exercises): adding question mark to quiz2
2020-08-25 21:05:16 +02:00
Antoine Barthelemy
101072ab9f fix(exercises): adding question mark to quiz2
Question marks added for consistency.

closes #496
2020-08-25 16:38:41 +02:00
fmoko
47f7672c03 fix(generics3): clarify grade change 2020-08-25 10:45:12 +02:00
John Heath
dd54ccf677 Make comments on example clearer
I actually struggled because I overlooked the fact that I needed to change the 2.1 to "A+". 

So I wanted to make things clearer for future rustlings.
2020-08-24 22:37:31 +01:00
fmoko
66ec916b3d Merge pull request #498 from seeplusplus/main
fix(arc1): index mod should equal thread count
2020-08-17 12:48:41 +02:00
seeplusplus
b4062ef699 fix(arc1): index mod should equal thread count 2020-08-16 20:55:50 -04:00
fmoko
2d3816341e Merge pull request #492 from etiennebarrie/rustfmt-on-exercises
chore: Run rustfmt on exercises
2020-08-10 17:33:55 +02:00
fmoko
d1054cd596 Merge pull request #493 from etiennebarrie/cargo-fmt
chore: Run cargo fmt
2020-08-10 17:33:22 +02:00
Étienne Barrié
81f8c2f83c chore: Run cargo fmt 2020-08-10 10:42:54 -04:00
Étienne Barrié
3144d3ae63 chore: Run rustfmt on exercises 2020-08-10 10:24:21 -04:00
Mukund Bhudia
9642f5a3f6 feat: Added iterators1.rs exercise 2020-08-04 12:57:01 +01:00
fmoko
c4853ee6bb Merge pull request #487 from dmarcoux/update-rustlings-in-cargo-lock 2020-08-04 01:57:04 +02:00
Dany Marcoux
1cc40bc9ce fix: Update rustlings version in Cargo.lock 2020-08-03 22:17:32 +02:00
Robby
38a615f407 chore: add .vscode to gitignore 2020-07-24 13:23:01 +02:00
Adi Vaknin
4f2468e14f feat(cli): Added 'cls' command to 'watch' mode (#474) 2020-07-23 20:23:27 +02:00
Ryan McQuen
8f7b5bd00e feat: Add ability to run rustlings on repl.it (#471)
Co-authored-by: fmoko <mokou@posteo.de>
2020-07-23 19:21:15 +02:00
Ryan McQuen
4821a8be94 feat: Add gitpod support (#473) 2020-07-23 19:20:21 +02:00
Chad Dougherty
523d18b873 feat(try_from_into): Add insufficient length test (#469) 2020-07-13 11:39:05 +02:00
Eli Blaney
c52be7dfcb docs: Add uninstall info to README.md
* docs: Add uninstall info to README.md
* docs: Format commands as bash block
2020-07-12 08:44:11 +01:00
fmoko
c2bfcf1c54 Merge pull request #468 from benjaminfjones/fix/exercise_whitespace
chore: change exercise whitespace for consistency
2020-07-11 23:12:58 +02:00
Benjamin Jones
bb5f404e35 chore: Alter whitespace for consistency
* Add newline after "I AM DONE" in exercises for consistency
* Remove trailing whitespace from exercises
2020-07-11 11:50:54 -07:00
Philip Pokarowski
106dbbc341 Update README.md (#464) 2020-07-09 09:25:50 +02:00
DEWA Kazuyuki/出羽和之
4b6540c71a fix(enums3): Update Message::ChangeColor to take a tuple. (#457) 2020-07-08 11:56:43 +02:00
Alexx Roche
816b1f5e85 feat: Remind the user of the hint option (#425)
Suggestion from AbdouSeck https://github.com/rust-lang/rustlings/issues/424#issuecomment-639870331
for when the student's code has errors.
2020-07-08 11:52:23 +02:00
Alexx Roche
9f61db5dbe feat: Remind the user of the hint option (#425)
Suggestion from AbdouSeck https://github.com/rust-lang/rustlings/issues/424#issuecomment-639870331
for when the student's code has errors.
2020-07-08 11:51:12 +02:00
mokou
e823bef970 docs: Add missing closing brackets to changelog 2020-07-08 11:43:08 +02:00
mokou
f9ccc6a289 release: 4.0.0 2020-07-08 11:35:27 +02:00
fmoko
b32a666541 Merge pull request #458 from Sowed/main 2020-07-01 10:19:45 +02:00
iamcastelli
b636825de3 Merge pull request #1 from Sowed/then-to-than-docs-patch
fix: Change then to than
2020-06-27 16:49:39 +04:00
iamcastelli
ddd98ad75d fix: Change then to than
`than` makes more grammatical sense than `then` in this context.
2020-06-27 15:58:53 +04:00
mokou
d355927024 Merge remote-tracking branch 'origin/master' into main 2020-06-22 04:47:27 +02:00
fmoko
75c0053bb1 Merge pull request #433 from SebastienCaunes/fix#432
fix : Use of integer for prices, therefore also for weight
2020-06-22 00:09:09 +02:00
mokou
55a9284665 chore: Move from master branch to main branch 2020-06-14 14:48:51 +02:00
Alexx Roche
113cdae2d4 fix(arc1): Passively introduce attributes (#429)
Ensure that std::sync::Arc is actually used, as this exercise can be compiled using things already learnt in previous exercises.
2020-06-14 12:15:35 +02:00
fmoko
c6295ade33 Merge pull request #428 from millefalcon/master
Added example with `String` to show the AsRef working
2020-06-13 22:15:57 +02:00
fmoko
e1e453075f Merge pull request #422 from AbdouSeck/show-tests-prints 2020-06-12 23:04:51 +02:00
Sebastien Caunes
9ca08b8f2b fix : Use of integer for prices, therefore also for weight
rename confusing "from" and "to" to sender_country and recipient_country as suggested
2020-06-11 11:44:47 -05:00
tim bangma
f47d3f422d docs: Update Invoke-WebRequest to Start-BitsTransfer (#373) 2020-06-10 10:51:03 +02:00
Alexx Roche
e6bd8021d9 fix(generics2): Guide students to the answer (#430) 2020-06-09 13:54:18 +02:00
millefalcon
307252e9ae Added example to show the AsRef working 2020-06-08 07:51:34 -04:00
Alexx Roche
bb2ca25110 fix(box1): fix comment typo (#426)
Doesn't effect the code.
2020-06-06 12:07:39 +02:00
Abdou Seck
9e4fb1009f fix(installation): Provide a backup git reference when tag can't be curl
closes #423

If the parsed JSON data curled during a bash installation is not valid, use the repository's tag files
as a backup. If those files don't exist somehow, then checkout the master branch and install it.
2020-06-05 16:33:14 -04:00
Abdou Seck
8ad5f9bf53 feat: Add a --nocapture option to display test harnesses' outputs
This new feature can be accessed by invoking rustlings with --nocapture.

Both unit and integration tests added.

closes #262

BREAKING CHANGES:
The following function take a new boolean argument:
	* `run`
	* `verify`
	* `test`
	* `compile_and_test`
2020-06-04 11:18:26 -04:00
Abdou Seck
02a2fe4871 Collapse nested if statements 2020-06-04 11:18:09 -04:00
Abdou Seck
40741c5b0b Use .to_string rather than format macro 2020-06-03 17:18:48 -04:00
Alexx Roche
0dd1c6ca6b fix: rename quiz1 to tests1 in info (#420)
`rustlings run tests1` wasn't working because of this typo.
2020-06-03 20:07:06 +02:00
Alexx Roche
5563adbb89 fix: fix quiz naming inconsistency (#421)
Inconsistent naming when compared with the other quiz files.
2020-06-03 20:06:35 +02:00
Alexx Roche
524e17df10 fix(variables6): minor typo (#419)
Looks like this was cloned from variables5.rs
2020-06-03 13:34:43 +02:00
fmoko
73e848e96f Merge pull request #416 from danwilhelm/traits-readme
feat: Add traits README
2020-05-30 17:58:31 +02:00
fmoko
5f0806967c Merge pull request #409 from AlexandruGG/feature/box-exercise 2020-05-30 17:58:16 +02:00
Dan Wilhelm
173bb14140 feat: Add traits README 2020-05-28 20:21:33 -07:00
fmoko
918f310674 Merge pull request #410 from tsauvajon/fix-option1
fix(option1): Don't add only zeros to the numbers array
2020-05-29 00:33:00 +02:00
fmoko
a75fdbd8ad Merge pull request #415 from danwilhelm/powershell-correction
chore: Fix PowerShell capitalization
2020-05-29 00:32:45 +02:00
Dan Wilhelm
9d3f189b0e chore: Fix PowerShell capitalization 2020-05-28 14:51:20 -07:00
AlexandruGG
7e79c51222 Add .idea to gitignore 2020-05-28 18:01:32 +01:00
fmoko
a180d831a1 Merge pull request #413 from danwilhelm/generics3-90chars 2020-05-28 10:15:55 +02:00
Dan Wilhelm
e81adc2752 chore: Add Powershell reminder 2020-05-28 09:35:29 +02:00
Allan Soares Duarte
500422d594 chore: Update variables6.rs book link 2020-05-28 09:33:15 +02:00
Dan Wilhelm
0311c03735 chore: Limit generics3 lines to 90 chars 2020-05-27 23:39:11 -07:00
AlexandruGG
df81141d6f Address PR feedback: add tests 2020-05-27 10:03:59 +01:00
Thomas Sauvajon
cce6a44277 fix(option1): Don't add only zeros to the numbers array 2020-05-27 18:55:12 +10:00
AlexandruGG
7479a4737b feat: Add box1.rs exercise 2020-05-26 21:46:24 +01:00
Evan Carroll
06ef4cc654 fix: confine the user further in variable exercises
We want to teach a specific lesson. To ensure that we do, let's try to
provide more clarity on what the user should not do.
2020-05-25 10:09:11 +02:00
Jade McGough
c7c3130507 chore: remove struct2 hint comment 2020-05-20 08:31:28 +02:00
Sanjay K
010a045692 feat: renames test to quiz, fixes #244
BREAKING CHANGE

* changed test to quiz: fixes issues in #244
* fixed info.toml: #244
* fixed naming related issues
2020-05-19 18:47:44 +02:00
fmoko
51666609f1 Merge pull request #365 from sjmann/generics-2-fix 2020-05-19 17:49:55 +02:00
Stefan Kupresak
10967bce57 fix(option2): Add TODO to comments (#400) 2020-05-16 22:48:18 +02:00
IkaR49
763aa6e378 feat: Rewrite try_from_into (#393) 2020-05-15 23:02:57 +02:00
Gaurang Tandon
d6c0a688e6 fix(test2): name of type String and &str (#394) 2020-05-13 12:38:14 +02:00
Jawaad Mahmood
9f75554f2a fix(options1): Add hint about Array Initialization (#389) 2020-05-10 13:21:29 +02:00
Evan Carroll
2b20c8a0f5 fix(errorsn): Try harder to confine the user. (#388) 2020-05-06 21:12:15 +02:00
fmoko
1b4590b42b Merge pull request #385 from siobhanjacobson/fix-enums3-test 2020-05-05 19:50:28 +02:00
Siobhan Jacobson
09e89bbcd3 Update Message::Move in the enums3 test to take a Point. 2020-05-04 18:59:23 -04:00
fmoko
7c4b1f910c Merge pull request #372 from DiD92/exercise_structs3 2020-05-03 19:44:26 +02:00
fmoko
3ceabe91f8 Merge pull request #383 from wrobstory/wrobstory-exercises 2020-05-03 19:44:08 +02:00
fmoko
a39ffb2fb8 Merge pull request #368 from apatniv/update_test_case 2020-05-03 13:31:46 +02:00
apatniv
41f989135d Review Comments: Add other test cases 2020-05-02 20:41:11 -04:00
Rob Story
f6cffc7e48 fix(option1): Add cast to usize, as it is confusing in the context of an exercise about Option 2020-05-02 16:39:37 -07:00
Rob Story
1da84b5f7c feat: Add if2 exercise 2020-05-02 13:02:16 -07:00
fmoko
ebfe76cdb6 Merge pull request #382 from bertonha/deprecated-description 2020-05-02 18:38:32 +02:00
Christofer Bertonha
c301814d68 chore: Remove deprecated description from error_handling/errorsn.rs 2020-05-02 18:30:11 +02:00
fmoko
09478571df Merge pull request #378 from Darrenmeehan/patch-2 2020-04-30 18:33:46 +02:00
Jihchi Lee
a901499ede fix(from_into.rs): typo 2020-04-30 15:53:50 +02:00
fmoko
de65026db0 Merge pull request #377 from danwilhelm/dw-typos 2020-04-30 09:21:42 +02:00
fmoko
071b51d588 Check if python is available while checking for git, rustc and cargo (#376) 2020-04-30 09:21:17 +02:00
Darren Meehan
80390d8a03 docs: Remove outdated MacOS instructions
The quoted file no longer exists
2020-04-30 08:13:41 +01:00
Dan Wilhelm
9590082848 fix: update iterator and macro text for typos and clarity
- /macros/README.md: Typo "modules" => "macros"
- iterators2.py: Reduce line length to <90-char width.
- iterators4.py: Update 'fun' => 'challenge' as per PR#177
- rustlings hint iterators4: improve clarity
2020-04-29 19:11:54 -07:00
Abdou Seck
9cfb617d5b fix(installation): Check if python is available while checking for git,rustc and cargo
closes #374
2020-04-29 15:11:05 -04:00
Dídac Sementé Fernández
b66e2e0962 feat: Added exercise structs3.rs 2020-04-27 20:26:34 +02:00
Aleksei Trifonov
32721bbc83 chore: fix missing space in the hint for errorsn.rs 2020-04-25 10:25:41 +02:00
apatniv
19fb1c240c test: Add missing test case for from_str exercise 2020-04-21 22:51:56 -04:00
Steven Mann
630ff0e00b chore: add explanatory comment to clippy1 2020-04-21 18:50:00 +02:00
sjmann
964c974a02 fix: update generics2 closes #362 2020-04-21 13:34:25 +01:00
lebedevsergey
c9e4f2cfb4 fix: confusing comment in conversions/try_from_into.rs
Co-authored-by: Lebedev <sergey.lebedev@corp.mail.ru>
2020-04-17 15:43:01 +02:00
Said Aspen
a3a554aeed Hints for structs1 and structs2 (#355) 2020-04-16 16:21:36 +02:00
Ufuk Celebi
6c3cc2caf5 chore: delete orphaned error_handling/option1.rs
`error_handling/option1.rs` has been replaced by `option/option1.rs` and
is not referenced in `info.toml` any more.
2020-04-15 23:52:31 +02:00
Said Aspen
5999acd24a feat: Add exercise variables6 covering const (#352) 2020-04-14 10:13:20 +02:00
allcontributors[bot]
59f56b24d9 docs: add saidaspen as a contributor (#353)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-04-14 10:12:51 +02:00
Saurav
abd0ec379c chore: update variables5.rs book link (#351)
chore: update variables5.rs book link

chore: update variables5.rs book link
2020-04-12 19:35:20 +02:00
fmoko
cfb98a5617 docs: remove now obsolete credits section 2020-04-12 01:03:28 +02:00
allcontributors[bot]
fafcffed25 docs: add crodjer as a contributor (#350)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-04-12 01:00:22 +02:00
allcontributors[bot]
3f1209ce19 docs: add sanjaykdragon as a contributor (#349)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-04-12 00:59:07 +02:00
allcontributors[bot]
b217961254 docs: add sl4m as a contributor (#348)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-04-12 00:57:55 +02:00
allcontributors[bot]
cd06b39a42 docs: add Tarnadas as a contributor (#347)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-04-12 00:57:18 +02:00
allcontributors[bot]
84e1f85be2 docs: add sjmann as a contributor (#346)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-04-12 00:56:40 +02:00
allcontributors[bot]
f060f099d4 docs: add pbx as a contributor (#345)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-04-12 00:55:30 +02:00
allcontributors[bot]
e093af4c05 docs: add TorbenJ as a contributor (#344)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-04-12 00:54:59 +02:00
allcontributors[bot]
eface5ef45 docs: add harrisonmetz as a contributor (#343)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-04-12 00:54:28 +02:00
allcontributors[bot]
5b72f478a7 docs: add gnodarse as a contributor (#342)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-04-12 00:53:46 +02:00
allcontributors[bot]
5f5a0465cb docs: add codehearts as a contributor (#341)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: fmoko <mokou@posteo.de>
2020-04-12 00:52:51 +02:00
allcontributors[bot]
f509e479a1 docs: add Socratides as a contributor (#339)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-04-12 00:51:02 +02:00
allcontributors[bot]
ad00c2cf51 docs: add AbdouSeck as a contributor (#338)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-04-12 00:49:57 +02:00
allcontributors[bot]
a20f80623e docs: add rahatarmanahmed as a contributor (#337)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-04-12 00:49:05 +02:00
allcontributors[bot]
f26dca6d8e docs: add jensim as a contributor (#336)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-04-12 00:48:12 +02:00
fmoko
9ea089a5d9 docs: bump contributors per line down to 8 2020-04-12 00:47:24 +02:00
allcontributors[bot]
f07d1c9488 docs: add jrvidal as a contributor (#335)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-04-12 00:46:29 +02:00
allcontributors[bot]
0d0c79a5cb docs: add WofWca as a contributor (#334)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-04-12 00:45:01 +02:00
allcontributors[bot]
9bb5aa583f docs: add workingjubilee as a contributor (#333)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-04-12 00:44:27 +02:00
allcontributors[bot]
f26ed591f3 docs: add nyxtom as a contributor (#332)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-04-12 00:43:54 +02:00
allcontributors[bot]
0b4576a028 docs: add gdoenlen as a contributor (#331)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-04-12 00:43:08 +02:00
allcontributors[bot]
d7bb220ba3 docs: add vyaslav as a contributor (#330)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-04-12 00:42:30 +02:00
allcontributors[bot]
f907c710b2 docs: add Dylnuge as a contributor (#329)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-04-12 00:41:21 +02:00
allcontributors[bot]
c6bcb319f8 docs: add ajaxm as a contributor (#328)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-04-12 00:40:26 +02:00
allcontributors[bot]
443600194c docs: add nkanderson as a contributor (#327)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-04-12 00:39:56 +02:00
allcontributors[bot]
7b6f14c25a docs: add petemcfarlane as a contributor (#326)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-04-12 00:39:14 +02:00
allcontributors[bot]
887d919323 docs: add MrFroop as a contributor (#325)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-04-12 00:38:25 +02:00
allcontributors[bot]
74d32f0cca docs: add Jesse-Cameron as a contributor (#324)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-04-12 00:37:45 +02:00
allcontributors[bot]
3f479be7e7 docs: add danwilhelm as a contributor (#323)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-04-12 00:36:55 +02:00
allcontributors[bot]
95d02a23d0 docs: add miller-time as a contributor (#322)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-04-12 00:35:42 +02:00
allcontributors[bot]
8b59b9852f docs: add briankung as a contributor (#321)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-04-12 00:34:41 +02:00
allcontributors[bot]
53bda94f77 docs: add eddyp as a contributor (#320)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-04-12 00:34:06 +02:00
allcontributors[bot]
52580cfd0d docs: add dendi239 as a contributor (#319)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-04-12 00:32:56 +02:00
allcontributors[bot]
cf3d5b44e6 docs: add yvan-sraka as a contributor (#318)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-04-12 00:32:07 +02:00
allcontributors[bot]
491dc2e5ca docs: add cjpearce as a contributor (#317)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-04-12 00:31:21 +02:00
allcontributors[bot]
b89cdef120 docs: add mgeier as a contributor (#316)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-04-12 00:30:31 +02:00
allcontributors[bot]
348fe339b9 docs: add zacanger as a contributor (#315)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-04-12 00:28:52 +02:00
fmoko
e79d7ea981 docs: increase contributors per line 2020-04-12 00:28:06 +02:00
allcontributors[bot]
e7841ba2ed docs: add ColinPitrat as a contributor (#314)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-04-12 00:27:26 +02:00
allcontributors[bot]
37687e9323 docs: add kisom as a contributor (#313)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-04-12 00:24:27 +02:00
allcontributors[bot]
b749314944 docs: add abagshaw as a contributor (#312)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-04-12 00:23:18 +02:00
allcontributors[bot]
3eb0fb5aa6 docs: add shaunbennett as a contributor (#311)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-04-12 00:22:30 +02:00
allcontributors[bot]
44a4cf3b27 docs: add Delet0r as a contributor (#310)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-04-12 00:21:37 +02:00
allcontributors[bot]
9a8762ba6e docs: add evestera as a contributor (#309)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-04-12 00:21:03 +02:00
allcontributors[bot]
2e1bd5ef4e docs: add lukabavdaz as a contributor (#308)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-04-12 00:20:06 +02:00
allcontributors[bot]
a9dc101701 docs: add spacekookie as a contributor (#307)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-04-12 00:18:53 +02:00
allcontributors[bot]
e2835de137 docs: add hynek as a contributor (#306)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-04-12 00:17:40 +02:00
allcontributors[bot]
535e7a6a28 docs: add robertlugg as a contributor (#305)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-04-12 00:16:50 +02:00
allcontributors[bot]
fe96de2e2d docs: add QuietMisdreavus as a contributor (#304)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-04-12 00:14:45 +02:00
allcontributors[bot]
9fd881443f docs: add carols10cents as a contributor (#303)
* docs: update README.md [skip ci]

* docs: create .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-04-12 00:09:23 +02:00
mokou
2ff3f7ae13 3.0.0 2020-04-12 00:01:08 +02:00
fmoko
2b80f6ed41 chore: Remove duplicate option1 exercise 2020-04-11 17:27:10 +02:00
Rohan Jain
3ab084a421 fix(run): compile clippy exercise files
Additionally to running clippy, also compile the exercise file so that
`rustling run clippy1` works after a successful completion of the
exercise.

closes #291

Signed-off-by: Rohan Jain <crodjer@gmail.com>
2020-04-11 08:58:23 +02:00
mokou
495174ff7c chore: remove travis ci
And add a buildkite build status badge
2020-04-08 12:27:28 +02:00
mokou
b049fa2c84 feat(ci): add buildkite config 2020-04-08 12:08:37 +02:00
fmoko
052f0aa7d4 Merge pull request #292 from Tuxified/patch-1
Remove duplicate not done comment
2020-04-08 11:23:49 +02:00
Tonći Galić
60393999b8 remove bottom comment instead of top 2020-04-08 11:00:11 +02:00
Roberto Vidal
b3a3351e8e fix: revert primitive_types4 (#296) 2020-04-08 10:42:35 +02:00
Sanjay K
86b5c08b9b feat: Add Option2 exercise (#290)
* added option2

* changed up the exercise, modified the help section

* Update exercises/option/option2.rs

Co-Authored-By: fmoko <mokou@posteo.net>

* Update exercises/option/option2.rs

Co-Authored-By: fmoko <mokou@posteo.net>

* Update exercises/option/option2.rs

Co-Authored-By: fmoko <mokou@posteo.net>

Co-authored-by: fmoko <mokou@posteo.net>
2020-04-07 20:16:10 +02:00
Tonći Galić
dab90f7b91 Remove duplicate not done comment
As indicated in #259 , I found it confusing to have 2 comments as the code wouldn't compile unless I solved both issues (I used the script from #281 to remove a comment and use `:wn` to go to next exercise, hence this tripped me).
2020-04-07 17:00:45 +02:00
fmoko
71d31256a6 Merge pull request #278 from jrvidal/output-mode
feature: adds "output" mode, resolves #270
2020-04-07 11:26:48 +02:00
Roberto Vidal
3b6d5c3aaa feature: makes "compile" exercise print output, resolves #270
When running "compile"-mode exercises in interactive `verify` mode,
we print their output when we prompt the learner if they want to
continue. This improves the "experimentation" experience, since
trying different things does produce a visible change.
2020-04-06 16:17:14 +02:00
fmoko
7ce42941ea Merge pull request #282 from sanjaykdragon/master
feat: added option exercise
2020-04-05 15:58:09 +02:00
Sanjay K
3f8171475c updated info.toml 2020-04-05 09:45:07 -04:00
fmoko
b135b589e0 Merge pull request #280 from sjmann/generics-exercises
feat: added generics exercises
2020-04-05 14:40:34 +02:00
Sanjay K
05ca3d77f7 Merge branch 'master' of https://github.com/sanjaykdragon/rustlings 2020-04-02 08:41:14 -04:00
Sanjay K
6deee7e3e9 fixed spacing 2020-04-02 08:40:59 -04:00
fmoko
9dc404077a Merge pull request #288 from vjousse/fix-traits-doc
chore(TRAITS1): don't hardcode documentation version
2020-03-26 21:16:52 +01:00
Vincent Jousse
30e6af6069 Don't hardcode documentation version for traits 2020-03-26 15:22:22 +01:00
Sanjay K
9788496a85 Update option1.rs 2020-03-11 13:44:41 -04:00
Sanjay K
6d3a412d47 Update option1.rs 2020-03-11 13:44:10 -04:00
bors
700b236f4d Auto merge of #284 - sl4m:update-from-into-ex, r=fmoko
Adds additional test to meet exercise rules

This PR adds an additional test to meet this exercise [rule](https://github.com/rust-lang/rustlings/blob/master/exercises/conversions/from_into.rs#L33).
2020-03-11 15:06:23 +00:00
skim
bc22ec382f adds additional test to meet exercise rules 2020-03-11 07:58:04 -07:00
Sanjay K
135e5d47a7 feat: added excercise for option 2020-03-05 15:52:54 -05:00
sjmann
0f8001ea44 add I AM NOT DONE comments 2020-02-28 00:31:55 +00:00
sjmann
5b6e23c323 removed artifact from manual testing 2020-02-28 00:29:30 +00:00
sjmann
29b30ec946 Merge branch 'master' of https://github.com/sjmann/rustlings into generics-exercises 2020-02-28 00:19:45 +00:00
sjmann
76be5e4e99 feat: added new exercises for generics 2020-02-28 00:09:08 +00:00
mokou
8b9479071c 2.2.1 2020-02-27 19:22:55 +01:00
mokou
3d9b03c52b fix: Re-add cloning the repo to install scripts 2020-02-27 19:19:31 +01:00
bors
a03d9655a8 Auto merge of #269 - Tarnadas:master, r=fmoko
feat: Add clippy lints

This is a feature PR which adds the possiblity to create clippy exercises.

Clippy has many awesome linting rules, which can give a deeper understanding about the Rust programming language, therefor I made this PR.
2020-02-26 14:22:51 +00:00
Mario Reder
1e2fd9c92f feat: Add clippy lints
- adds a new 'clippy' category for exercises
- clippy exercises should throw no warnings
- install script now also installs clippy

is related to https://github.com/rust-lang/rust-clippy/issues/2604
2020-02-26 14:07:07 +01:00
bors
7e8530b21f Auto merge of #271 - jrvidal:refactor, r=fmoko
refactor: exercise evaluation

After working a bit on #270, I realized that it'd be useful to first perform a minor refactor of exercise evaluation.

* Now we have standard methods to compile + execute that return `Result`s.
* Success/failure messages are standardized.
2020-02-26 11:48:01 +00:00
bors
98358597a9 Auto merge of #277 - sjmann:update-ignore, r=fmoko
chore: update gitignore to ignore pdb files

Pr for issue #275
2020-02-26 10:46:53 +00:00
sjmann
8064facbb8 chore: update gitignore to ignore pdb files 2020-02-26 10:43:13 +00:00
sjmann
f981dcfde4 Merge branch 'master' of https://github.com/sjmann/rustlings 2020-02-26 10:38:50 +00:00
mokou
6eb62fa2ce 2.2.0 2020-02-25 23:00:19 +01:00
bors
78295ce92f Auto merge of #274 - sjmann:master, r=fmoko
chore: fixed merge conflicts from traits exercises added by s-marios

I hope this doesn't step on any toes but I wanted to try the traits exercises from #216 so I updated them to match the new structure with hints included in info.toml
2020-02-25 21:27:39 +00:00
fmoko
358fb473cd Merge pull request #276 from stigjb-forks/testing-test4
Enable test for exercise test4
2020-02-25 14:25:22 +01:00
Stig Johan Berggren
a45486f2d0 Add a second test case 2020-02-25 14:25:03 +01:00
Stig Johan Berggren
8b971ffab6 Enable test for exercise test4 2020-02-25 14:13:10 +01:00
Steven Mann
dc84aacc65 remove confusing comment wording 2020-02-25 11:00:09 +00:00
sjmann
bbf8922ef7 Merge remote-tracking branch 'upstream/master' 2020-02-25 10:00:38 +00:00
sjmann
b559cdd73f added traits exercises 2020-02-25 09:48:50 +00:00
fmoko
ec51cdb229 Merge pull request #273 from sjmann/master
docs(iterators): Updated iterators readme to account for iterators4 exercise
2020-02-22 15:34:51 +01:00
sjmann
a3f70124dc fixed typo 2020-02-22 14:28:07 +00:00
sjmann
bec8e3a644 reworded missing exercise explanation 2020-02-22 13:04:37 +00:00
bors
c228a06e49 Auto merge of #272 - QuintenJohnson:fix/installation-warning-messages, r=fmoko
fix(installation): make fatal errors more obvious

I initially ran the installation script without rust installed. The fact that the error message was labeled with WARNING made me unsure whether installation was successful or I needed to re-run after installing rust. There's an error code returned on fatal errors, but this change will make things clearer.
2020-02-21 20:56:11 +00:00
Quinten Johnson
17d0951e66 fix(installation): make fatal errors more obvious 2020-02-21 11:52:47 -06:00
Roberto Vidal
43dc31193a refactor: exercise evaluation
Exercise evaluation (compilation + execution) now uses Results
Success/failure messages are standardized
2020-02-20 20:27:05 +01:00
fmoko
83bbd9e82e chore: Correct test command in tests1.rs comment (#267)
chore: Correct test command in tests1.rs comment
2020-01-29 15:39:10 +01:00
Jason Tsai
39fa7ae8b7 chore: Correct test command in tests1.rs comment 2020-01-29 13:48:43 +08:00
fmoko
3161a8fd9d Fixed mangled sentence from book; edited for clarity (#266)
Fixed mangled sentence from book; edited for clarity
2020-01-25 13:27:53 +01:00
Paul Bissex
ade52ffb73 Fixed mangled sentence from book; edited for clarity 2020-01-25 03:24:14 -05:00
fmoko
89c73647f1 Add variables5 to introduce shadowing (#264)
Add variables5 to introduce shadowing
2020-01-14 23:32:45 +01:00
Torben Jonas
0c73609e6f feat: Add variables5.rs exercise
closes #260
2020-01-14 21:10:07 +01:00
fmoko
19a93428b3 fix: Update deps to version compatable with aarch64-pc-windows (#263)
fix: Update deps to version compatable with aarch64-pc-windows
2020-01-11 12:23:23 +01:00
Harrison Metzger
32a9cf7b8d fix: Update deps to version compatable with aarch64-pc-windows 2020-01-11 02:45:38 -06:00
fmoko
c86b217e1d Created consistent money unit (#258)
Created consistent money unit
2019-12-30 16:48:04 +01:00
gnodarse
fd57f8f2c1 Created consistent money unit 2019-12-29 19:15:32 -05:00
bors
0d1f1a19b7 Auto merge of #253 - codehearts:watch-completion-message, r=fmoko
feat: Show a completion message when watching

The completion message is shown only once all exercises succeed and are
not annotated with "I AM NOT DONE." The watch command will also exit

closes #251

Let me know if there are any tests I could add or if the completion message should be tweaked!
2019-12-28 20:01:28 +00:00
Kate Hart
d25ee55a32 feat: Show a completion message when watching
The completion message is shown only once all exercises succeed and are
not annotated with "I AM NOT DONE." The watch command will also exit

closes #251
2019-12-26 20:27:49 -08:00
fmoko
3afa96bed4 Enable a test and improve per clippy's suggestion. (#256)
Enable a test and improve per clippy's suggestion.
2019-12-25 00:59:35 +01:00
dmitri-mamrukov
dfdf8093eb Enable a test and improve per clippy's suggestion. 2019-12-23 21:37:09 -05:00
fmoko
3906efcd52 fix(docs): Added a necessary step to Windows installation process 2019-12-22 13:21:24 +01:00
Socrates
2021a1ac7d Update README.md
Added an essential step to Windows installation process (Setting ExecutionPolicy to RemoteSigned because it wouldn't install otherwise).
2019-12-22 14:16:04 +02:00
bors
426a7bb87f Auto merge of #249 - AbdouSeck:conversions, r=fmoko
feat: Add type conversion and parsing exercises

This pull request adds exercises for converting values into specific types. The exercises uses string to struct type conversions, but most of the traits in the exercises can handle more than just string parsing and conversions.

The following traits are covered:
1. `From` and `Into`
2. `TryFrom` and `TryInto`
3. `AsRef`
4. `FromStr`

The `as` operator is also covered.
2019-12-16 16:41:03 +00:00
Abdou Seck
fc26b5e151 I AM NOT DONE comment in conversions exercise files 2019-12-16 11:33:00 -05:00
Abdou Seck
0c85dc1193 feat: Add type conversion and parsing exercises 2019-12-16 09:12:13 -05:00
marisa
fe10e06c37 fix(tests1): Change test command
Closes #243.
2019-12-16 13:05:25 +01:00
marisa
419f7797f2 fix(iterators2): Remove reference to missing iterators2.rs (#245)
fix(iterators2): Remove reference to missing iterators2.rs
2019-12-16 12:51:03 +01:00
Rahat Ahmed
54571a5fca fix(iterators2): Remove reference to missing iterators2.rs 2019-12-07 23:25:13 -08:00
marisa
4b79691d5e 2.1.0 2019-11-27 10:46:09 +01:00
marisa
615ce32798 fix(enums): Add link to chapter on pattern syntax (#242)
Add link to chapter on pattern syntax
2019-11-25 12:16:51 +00:00
Jens
31c25ebb50 Add link to chapter on pattern syntax
After being stuck on exercise enums3.rs for about an hour or two, having read the entire chapter on enums 2-3 times, and still being unable to complete the exercise, i started broadening my reading. I finally found the answer in the rust docs via google.
2019-11-24 09:28:33 +01:00
bors
f4acb888a6 Auto merge of #241 - vyaslav:master, r=fmoko
feat(watch): show hint while watching

`rustlings hint ...` command is not convenient when doing exercises with `rustlings watch`.
This PR makes it possible for user to type `hint` while running `watch`  and get hint text for exercise which is currently failing.
e.g.
```rust
...
  --> exercises/variables/variables1.rs:13:36
   |
13 |     println!("x has the value {}", x);
   |                                    ^ not found in this scope

error: aborting due to 2 previous errors

For more information about this error, try `rustc --explain E0425`.

type 'hint' to get help:
hint
Hint: The declaration on line 12 is missing a keyword that is needed in Rust
to create a new variable binding.
```
2019-11-18 22:23:14 +00:00
vyaslav
8143d57b4e feat(watch): show hint while watching 2019-11-18 20:52:57 +01:00
bors
a40ad092e9 Auto merge of #239 - jrvidal:master, r=fmoko
fix: line numbers in several exercises and hints

The introduction of `I AM NOT DONE` shifted the lines of all exercises, which now need adjustment.
2019-11-14 08:23:50 +00:00
Roberto Vidal
b565c4d3e7 fix: line numbers in several exercises and hints
The introduction of `I AM NOT DONE` shifted the lines of all
exercises, which now need adjustment.
2019-11-14 08:21:56 +01:00
bors
e9a835c1c0 Auto merge of #237 - ckeschnat:master, r=fmoko
fix(variables1): Correct wrong word in comment
2019-11-13 23:45:56 +00:00
bors
cf38f03459 Auto merge of #238 - ageorgou:functions4-update, r=fmoko
Update line numbers in hints and outdated comment

In functions4, the missing code is in line 14 in the latest version:
```rust
error: expected type, found `{`
  --> exercises/functions/functions4.rs:14:30
   |
14 | fn sale_price(price: i32) -> {
   |                              ^ expected type

error: aborting due to previous error
```
but the hint points to line 12. This is due to a recent change in 2cdd61294f.

Also includes similar updates for strings2 and primitive_types4.
2019-11-13 23:41:00 +00:00
Anastasis Georgoulas
4c5189df2b fix(primitive_types4): update outdated hint
Exercise was changed to test (and the order was switched) in #209.
2019-11-13 23:23:34 +00:00
Anastasis Georgoulas
a09f684f05 fix(strings2): update line number in hint 2019-11-13 23:23:34 +00:00
ageorgou
8cc5af121c Fix(functions4): Update line number in hint 2019-11-12 23:49:19 +00:00
Chris Keschnat
c42c3b2101 fix(arc1): Fix some words in the comment 2019-11-12 18:37:23 +01:00
Chris Keschnat
fda5a47069 fix(variables1): Correct wrong word in comment 2019-11-12 17:33:25 +01:00
marisa
57a837bde6 Merge pull request #236 from jrvidal/master
fix(primitive_types4): update outdated comment
2019-11-12 13:00:28 +01:00
Roberto Vidal
ded2c034ba fix(primitive_types4): update outdated comment 2019-11-12 12:52:28 +01:00
marisa
eac07df96c 2.0.0 2019-11-12 12:24:30 +01:00
bors
8c1376df07 Auto merge of #235 - rust-lang:fmoko-patch-1, r=fmoko
fix(default): Clarify the installation procedure
2019-11-12 11:13:06 +00:00
bors
45d68d9b39 Auto merge of #232 - rust-lang:update-docs, r=fmoko
chore: Update docs for 2.0

Only merge this once we're ready to release 2.0.
2019-11-12 11:07:56 +00:00
marisa
c371b853af fix(default): Clarify the installation procedure 2019-11-12 11:53:58 +01:00
bors
bc32a63c69 Auto merge of #234 - jrvidal:no-prompt-on-run, r=fmoko
fix(run): makes `run` never prompt

`watch` and `verify` do prompt the user to actively move to the
next exercise. This change fixes `run` to never prompt. Previously
it was inconsistent between "test" and "compile" exercises.

BREAKING CHANGE: we again change the behavior of the `run` command
2019-11-12 10:50:19 +00:00
Roberto Vidal
4b26546589 fix(run): makes run never prompt
`watch` and `verify` do prompt the user to actively move to the
next exercise. This change fixes `run` to never prompt. Previously
it was inconsistent between "test" and "compile" exercises.

BREAKING CHANGE: we again change the behavior of the `run` command
2019-11-12 11:35:40 +01:00
bors
bc56788fe6 Auto merge of #233 - jrvidal:rustc-check, r=fmoko
feat(cli): check for rustc before doing anything

Addresses #190. From the backtraces shown there, it seems like we're not able to launch `rustc` (which is odd, given that they probably compiled and installed `rustlings` 🤷‍♀️)
2019-11-11 18:19:07 +00:00
marisa
b4d41c1b7a chore: Update docs for 2.0 2019-11-11 18:02:56 +01:00
Roberto Vidal
36a033b87a feat(cli): check for rustc before doing anything
Addresses #190.
2019-11-11 18:00:54 +01:00
bors
9544ba1029 Auto merge of #231 - rust-lang:refactor-hints, r=jrvidal
Refactor hints

Breaking change. This removes hints from the end of files, and puts them into `info.toml`. You can now access hints using:

```
rustlings hint <exerciseName>
```

ALSO this changes the exercise system to index by name for `run` and `hint`, so:

```
rustlings run exercises/if/if1.rs
```

becomes

```
rustlings run if1
```
2019-11-11 16:51:12 +00:00
marisa
1a7bb5a400 Address feedback 2019-11-11 17:47:45 +01:00
marisa
48c35bcfbc fix tests 2019-11-11 17:28:19 +01:00
marisa
ec2d4bd3ee Merge branch 'master' into refactor-hints 2019-11-11 17:21:06 +01:00
marisa
ce9fa6ebbf feat(hint): Add test for hint 2019-11-11 17:19:50 +01:00
marisa
9a9007abae chore: Add .editorconfig file 2019-11-11 17:12:11 +01:00
bors
88ec6f6b16 Auto merge of #230 - jrvidal:master, r=fmoko
Changes the execution mode for `watch`, asking for user input

We've [observed](https://hackmd.io/-cK6aPhnTwiCiI7u6k0xug?both) that learners can get confused when they do get everything right, but they _still_ get errors... which come from the next exercise, no the one they just edited.

This PR changes it so they have to confirm they want to move forward by removing the `I AM NOT DONE` comment.

![Screenshot at 2019-11-11 15:13:39](https://user-images.githubusercontent.com/1636604/68593566-0abd3900-0496-11ea-9e9d-6c43b91bf21d.png)

* [ ] The particular string is of course subject to bikeshed.

### Alternatives/doubts
* The coolest solution I could imagine would involve a proc-macro attribute `#![ready(false)]` that they could edit once they're done, but it's a bit complicated to set up.
* For now I've put `I AM NOT DONE` everywhere, I think it's what make more sense.
2019-11-11 15:59:35 +00:00
marisa
795b6e3480 fix(info): Fix trailing newlines for hints 2019-11-11 16:56:39 +01:00
marisa
9bdb0a12e4 feat: Refactor hint system
Hints are now accessible using the CLI subcommand `rustlings hint
<exercise name`.

BREAKING CHANGE: This fundamentally changes the way people interact with exercises.
2019-11-11 16:51:38 +01:00
Roberto Vidal
2cdd61294f feat: improve watch execution mode
The `watch` command now requires user action to move to the next
exercise.

BREAKING CHANGE: this changes the behavior of `watch`.
2019-11-11 16:23:35 +01:00
marisa
627cdc07d0 feat: Index exercises by name
BREAKING CHANGE: This changes the way you use `rustlings run` by now
requiring an abridged form of the previous filename, e.g:

`rustlings run exercises/if/if1.rs` becomes
`rustlings run if1`
2019-11-11 15:46:32 +01:00
marisa
a47a62172a 1.5.1 2019-11-11 14:02:27 +01:00
marisa
f72e5a8f05 fix(structs1): Remove misleading comment 2019-11-11 13:57:59 +01:00
marisa
fbe91a67a4 fix(threads): Move Threads behind SLT
Closes #205.
2019-11-11 13:48:09 +01:00
marisa
6dcecb38a4 fix(strings): Move Strings before Structs
Closes #204.
2019-11-11 13:46:42 +01:00
marisa
dcfb427b09 fix(errors3): Update hint
Closes #185.
2019-11-11 13:37:43 +01:00
marisa
ad03d180c9 fix(if1): Remove return reference
This closes #153.
2019-11-11 13:34:21 +01:00
bors
3232a4d60d Auto merge of #228 - WofWca:clear-screen, r=fmoko
improvement(watch): clear screen before each `verify()`

Closes #146
It seems to me that #227 wasn't really fixing the issue.
2019-11-09 15:23:53 +00:00
WofWca
3aff590855 improvement(watch): clear screen before each verify()
Closes #146
2019-11-09 22:24:24 +08:00
marisa
c8babbad27 1.5.0 2019-11-09 10:52:20 +01:00
bors
c6dad28ddc Auto merge of #224 - nyxtom:feat-enums, r=fmoko
feat: Add enums exercises

Creates an exhaustive list of enum exercises. This goes through the basics of different ways to derive enums with mixed data type variants, as well as the use of the all important `match` operator.
2019-11-09 09:41:36 +00:00
bors
fea81419cd Auto merge of #227 - workingjubilee:watch-clears-terminal, r=fmoko
watch: clears terminal before entering loop

Fixes #146

If someone is sliding in and out of "watch" mode, it can make it hard
to tell which error messages are still relevant. This patch resolves
that by clearing the terminal entirely before entering watch's loop.

Note that the escape character is chosen for compatibility reasons, because different shells/terminals can change which commands they accept or have installed, betting on what other commands are in use to collect data seems risky, and just expecting them to implement ANSI escape code sequences is more reliable. This seems especially true since Windows is seeking more UNIX compatibility in its terminals going forward, even though it doesn't implement the POSIX standard per se.
2019-11-09 09:31:50 +00:00
Jubilee Young
83be517e77 watch: clears terminal before entering loop
If someone is sliding in and out of "watch" mode, it can make it hard
to tell which error messages are still relevant. This patch resolves
that by clearing the terminal entirely before entering watch's loop.
2019-11-09 00:57:36 -08:00
marisa
79a569422c fix: Rewrite test1 logic 2019-10-29 20:53:41 +01:00
bors
1e0b12e37e Auto merge of #225 - ssweeny:fix/test1-wording, r=fmoko
chore: Clarify comment in exercises/test1.rs

closes #194

The author of issue #194 suggests that the wording of the comment is at
least ambiguous about the desired results. I believe this change more
clearly describes the expectation of the exercise.
2019-10-29 13:37:30 +00:00
Thomas Holloway
dc15032112 feat: Add enums exercises 2019-10-28 22:49:49 -05:00
Scott Sweeny
2821227acf chore: Clarify comment in exercises/test1.rs
closes #194

The author of issue #194 suggests that the wording of the comment is at
least ambiguous about the desired results. I believe this change more
clearly describes the expectation of the exercise.
2019-10-28 23:08:46 -04:00
bors
2191ef7eee Auto merge of #219 - vyaslav:master, r=fmoko
Added exercise for struct update syntax

Added one exercise for struct update syntax `struct2.rs`
2019-10-28 22:56:54 +00:00
marisa
4c2cf6da75 fix(option1): Fix arguments passed to assert! macro (#222)
fix(option1): Fix arguments passed to assert! macro
2019-10-26 00:27:40 +02:00
marisa
0f3d6d871e chore: Bump version in Cargo.lock (#223)
chore: Bump version in Cargo.lock
2019-10-26 00:27:17 +02:00
Niklas Anderson
bd007d4617 chore: Bump version in Cargo.lock 2019-10-25 14:57:30 -07:00
Niklas Anderson
ead4f7af9e fix(option1): Fix arguments passed to assert! macro 2019-10-25 14:27:24 -07:00
marisa
4808b5b3ba Update README to show latest version, for those who copy/paste (#221)
Update README to show latest version, for those who copy/paste
2019-10-25 01:54:10 +02:00
Mark Provan
f3da6796b9 Update README to show latest version, for those who copy/paste 2019-10-24 13:56:14 +01:00
marisa
cece12e87e docs: Add automatic Windows support to Readme 2019-10-23 13:01:07 +02:00
marisa
68d1727cac chore(ci): Remove GitHub actions for now 2019-10-23 12:56:07 +02:00
bors
8a2e13b20a Auto merge of #220 - gdoenlen:master, r=fmoko
Add windows install script

Adds a powershell install script for windows users that are at least
running powershell 5. It is almost a direct port of install.sh.
This would be used to automatically download the script much like
curl | bash, but with:

`Invoke-WebRequest https://urltoscript.com | Select-Object
-ExpandProperty Content | Out-File $env:TMP/install_rustlings.ps1;
Unblock-File $env:TMP/install_rustlings.ps1; Invoke-Expression
$env:TMP/install_rustlings.ps1`
2019-10-23 10:49:36 +00:00
George Doenlen
ee311b8e5c remove execution policy check 2019-10-22 22:26:33 -04:00
George Doenlen
f0de6c4e92 Add basic windows install script.
Adds a powershell install script for windows users that are at least
running powershell 5. It is almost a direct port of install.sh.
This would be used to automatically download the script much like
curl | bash, but with:

`Invoke-WebRequest https://urltoscript.com | Select-Object
-ExpandProperty Content | Out-File $env:TMP/install_rustlings.ps1;
Unblock-File $env:TMP/install_rustlings.ps1; Invoke-Expression
$env:TMP/install_rustlings.ps1`
2019-10-22 21:56:50 -04:00
Viacheslav Avramenko
1c4c8764ed feat: Added exercise for struct update syntax 2019-10-21 14:50:59 +02:00
bors
e6161a6f58 Auto merge of #217 - timthelion:timthelion-readme-run, r=fmoko
Tense in README

Don't see why run should be past tense.  At least in my native General American dialect it shouldn't be.
2019-09-25 14:09:52 +00:00
Timothy Hobbs
8c0fe59c90 Tense in README
Don't see why run should be past tense.  At least in my native General American dialect it shouldn't be.
2019-09-07 16:17:45 +00:00
komaeda
17690b3add chore(ci): Add GitHub Actions CI file 2019-08-21 13:23:38 +02:00
bors
f9987c8bed Auto merge of #212 - sosnowski:fix/add-dyn-trait, r=komaeda
fix(errorsn.rs) Update the deprecated syntax by adding dyn to trait o…

fix(errorsn.rs) Update the deprecated syntax by adding dyn to trait objects.

closes #211

Related issue: https://github.com/rust-lang/rustlings/issues/211
2019-08-21 11:01:11 +00:00
Damian S
8109cbad97 fix(errorsn.rs) Update the deprecated syntax by adding dyn to trait objectscloses #211 2019-08-21 11:44:42 +01:00
bors
c5bb32253b Auto merge of #209 - Dylnuge:slice-assert, r=komaeda
fix(primitive_types4): Fail on a slice covering the wrong area

I noticed this issue and it seems like a similar one was raised/fixed in #160 this way. This is my first contribution to this repo (or any Rust project) so let me know if I messed up or need to fix anything!

---
This commit converts primitive_types4 to a test and asserts that the
slice given is equal to the expected slice.

The intent of the primitive_types4 exercise appears to be to ensure the
user understands inclusive and exclusive bounds as well as slice syntax.
`rustlings` commands using `compile` do not verify that a specific
println is reached and, in the case of `watch` and `verify` (but not
`run`), they do not output the `println`s at all.

This fix is semantically similar to #198. It does not take a stance on
the correct way to handle this for all exercises; see #127. There are
likely other exercises whose intent are masked by this issue.
2019-08-18 08:24:44 +00:00
Dylan Nugent
5b1e673cec fix(primitive_types4): Fail on a slice covering the wrong area
This commit converts primitive_types4 to a test and asserts that the
slice given is equal to the expected slice.

The intent of the primitive_types4 exercise appears to be to ensure the
user understands inclusive and exclusive bounds as well as slice syntax.
`rustlings` commands using `compile` do not verify that a specific
println is reached and, in the case of `watch` and `verify` (but not
`run`), they do not output the `println`s at all.

This fix is semantically similar to #198. It does not take a stance on
the correct way to handle this for all exercises; see #127. There are
likely other exercises whose intent are masked by this issue.
2019-08-17 17:16:19 -07:00
bors
2cd06826c0 Auto merge of #206 - ajaxm:ajaxm/rustup-update, r=komaeda
Suggest rustup update in readme

I'm pretty new to Rust. I tried installing rustlings for the first time and got this error:
```
$> cargo install --force --path .
error: `/Users/ajax/projects/rust/rustlings` is not a crate root; specify a crate to install from crates.io, or use --path or --git to specify an alternate source

Caused by:
  failed to parse manifest at `/Users/ajax/projects/rust/rustlings/Cargo.toml`

Caused by:
  editions are unstable

Caused by:
  feature `edition` is required

this Cargo does not support nightly features, but if you
switch to nightly channel you can add
`cargo-features = ["edition"]` to enable this feature
```

I'm not sure if the answer was to run `rustup update` but I noticed that I was running Rust 1.29.0, so updated to 1.36.0 and got it working. If there's a way to specify a minimum required version, pls let me know.

Lastly, the whitespace changes were automatic from my editor. What's the convention here for making such updates? Thanks!
2019-08-13 10:04:36 +00:00
marisa
4f0c5a8d49 1.4.1 2019-08-13 11:59:17 +02:00
bors
3011251da7 Auto merge of #208 - EnricoMiccoli:patch-1, r=komaeda
chore: Correct typo in hint text
2019-08-12 15:24:17 +00:00
Enrico Miccoli
76b4cb5c00 chore: Correct typo 2019-08-12 11:45:40 +02:00
bors
f83af3c25d Auto merge of #207 - nkanderson:fix_iterators2, r=komaeda
Fix iterators2

A couple of small changes to the `iterators2` exercise. @Jesse-Cameron, it looks like you contributed this exercise, so I wanted to check and see if these changes are in line with your intentions. Happy to adjust if they're not :)
2019-08-11 15:44:40 +00:00
Niklas Anderson
e3931718fb chore(iterators2): Add exercise instructions 2019-08-09 07:38:21 -07:00
Niklas Anderson
4cde86643e fix(iterators2): Remove syntax resulting in misleading error message
closes #199
2019-08-09 07:37:27 -07:00
Ajax Manohar
9ee3207280 docs: Suggest rustup update in readme 2019-08-03 10:49:37 -07:00
bors
e696a07190 Auto merge of #201 - zdzc:patch-1, r=komaeda
docs: Fix wrong title

fix #200
2019-07-27 19:07:22 +00:00
Andre Pratama
e0db987441 docs: Fix wrong title
fix #200
2019-07-27 22:14:48 +07:00
bors
1890b0019d Auto merge of #198 - nkanderson:160_options1-add-test, r=komaeda
fix(option1): Add test for prematurely passing exercise

Fixes the bug referenced in #160, but does not address the larger feature work referenced by the issue.
2019-07-27 10:32:47 +00:00
Niklas Anderson
a750e4a1a3 fix(option1): Add test for prematurely passing exercise
Fixes the bug referenced in #160, but does not address the larger feature work referenced by the issue.
2019-07-26 16:58:12 -07:00
bors
1c789dda08 Auto merge of #192 - petemcfarlane:patch-2, r=komaeda
fix(test1): Swap assertion parameter order

`Expected` should come before `actual`, other wise it leads to confusing compiler messages, e.g.
```
note: expected type `()`
         found type `{integer}`
```
There may be other tests that need updating, but this is as far as I am through the Rustlings course right now :)
2019-07-13 16:27:14 +00:00
Pete McFarlane
4086d463a9 fix(test1): Swap assertion parameter order
`Expected` should come before `actual`, other wise it leads to confusing compiler messages, e.g.
```
note: expected type `()`
         found type `{integer}`
```
2019-07-13 13:31:57 +01:00
marisa
b8368de6d5 1.4.0 2019-07-13 12:50:22 +02:00
bors
7dc90094d2 Auto merge of #191 - MrFroop:master, r=komaeda
Fix(watch): Check if changed exercise file exists before calling verify.

Prevent a panic if the file triggering the watch event is gone.
2019-07-12 08:16:35 +00:00
Fredrik Jambrén
ba85ca32c4 Check if changed exercise file exists before calling verify. 2019-07-11 23:54:18 +02:00
etisdew
70946b85e5 fix(readme): http to https
changing readme image (line 1) to https fixes markdown preview and improves fidelity
2019-07-08 16:58:14 +02:00
bors
1570c328c6 Auto merge of #186 - Jesse-Cameron:iterator-exercise2, r=komaeda
feat(iterators2): adds iterators2 exercise including config

Hi there!

I really enjoyed doing the rustlings exercises so I thought that I would try to add an exercise!

This one just covers a couple of basic iterator operations. Getting people used to the `map` and `collect` functions.

However, it does feel kinda similar to the next exercise. So I may also revisit some of the tests in iterators3 if we think that is necessary.
2019-07-04 11:35:40 +00:00
Jesse
9288fccf07 feat(iterators2): adds iterators2 exercise including config 2019-07-03 21:06:24 +10:00
bors
5e1d7c3076 Auto merge of #184 - Jesse-Cameron:master, r=komaeda
fix(test1): renamed function name to snake case

addressing a minor function naming convention, see: [RFC #430](https://doc.rust-lang.org/1.0.0/style/style/naming/README.html)

closes #180
2019-06-28 15:27:40 +00:00
Jesse
89d5186c0d fix(test1): renamed function name to snake case
closes #180
2019-06-29 01:00:10 +10:00
bors
aaad60d07e Auto merge of #172 - miller-time:fix-book-links, r=komaeda
chore: Fix a couple broken book links

While I was fixing these, I figured maybe it's good to just use a consistent URL for book links: https://doc.rust-lang.org/book/

Is there a plan for what to do with this old 1.4.0 example that doesn't exist in the current version of the book? Perhaps at least include a disclaimer when recommending that folks check it out?

34e31232df/exercises/threads/README.md (L1)
2019-06-23 10:31:50 +00:00
bors
5f16469807 Auto merge of #171 - miller-time:rustfmt-exercises, r=komaeda
chore: Clean up some formatting in exercises

I noticed some formatting that isn't consistent with the `rustfmt` style and tried my best to run it on the files in the exercises directory (which does fail for files that can't compile!), which just caught some minor whitespace things here and there.

Note: also can't just apply `rustfmt` blindly because of the blank lines that lead to the hint comments
2019-06-23 10:25:48 +00:00
bors
752bc27e2b Auto merge of #179 - briankung:fix_irrefutable_let_pattern_structs1, r=komaeda
Fixes the irrefutable let pattern warning in `structs1.rs`

PR https://github.com/rust-lang/rustlings/pull/163 accidentally introduced an error using some versions of the Rust compiler where the compiler would (rightly!) complain about an irrefutable let pattern. I have no idea why this did not occur in all versions of the compiler, but here is a way around it.
2019-06-20 15:02:20 +00:00
Brian Kung
cc6a14104d Fixes the irrefutable let pattern warning 2019-06-20 09:46:49 -05:00
Russell Cousineau
eb13c2b6af chore: Clean up some formatting in exercises 2019-06-11 07:14:43 -07:00
Russell Cousineau
63c133e4a3 chore: Fix a couple broken book links 2019-06-11 07:13:05 -07:00
bors
b8d59d699b Auto merge of #169 - miller-time:fix-install-script, r=komaeda
fix(installation): Fix rustlings installation check

fixes #147

I did some quick testing with the `-x` check:

```sh
if [ -x "$(notrustlings)" ]
then
    echo "notrustlings does not exist"
else
    echo "notrustlings appears to exist!"
    notrustlings
fi
```

which produced:

```
./test.sh: line 12: notrustlings: command not found
notrustlings appears to exist!
./test.sh: line 17: notrustlings: command not found
```

(consistent with comments in issue)

Using `if ! [ -x "$(command -v <command>)" ]` appears to be the standard way to perform this type of check.
2019-06-11 13:53:07 +00:00
bors
5586613eec Auto merge of #170 - miller-time:rename-iterator-exercise, r=komaeda
fix(iterators): Rename iterator3.rs

fixes #155
2019-06-11 12:53:58 +00:00
bors
ad8e6dc63b Auto merge of #176 - danwilhelm:dan-minor-text, r=komaeda
chore: Minor text updates

- Make the default rustlings executable text consistent with the README and install script by adding `--force`.

- Remove a missed highlighting character from Issue #133.
2019-06-11 09:38:18 +00:00
Dan Wilhelm
f72e0ca979 chore: Remove missed highlighting char from Issue #133 2019-06-10 20:24:18 -07:00
Dan Wilhelm
03cfe67500 chore: Make install instructions consistent 2019-06-10 20:20:22 -07:00
Russell Cousineau
7a252c4755 fix(installation): Fix rustlings installation check 2019-06-09 07:40:54 -07:00
liv
2089901739 docs: Move content from Readme to Contributing 2019-06-09 14:46:38 +02:00
liv
635e506c16 docs: Recommend rustlings watch as default 2019-06-09 14:44:16 +02:00
liv
75d8c7e3cc docs: Add CONTRIBUTING.md 2019-06-09 14:39:00 +02:00
Rohan Prinja
080d6cdd11 chore: Fix link to Arc<T> in the book 2019-06-09 13:45:53 +02:00
Russell Cousineau
433d2115bc fix(iterators): Rename iterator3.rs 2019-06-07 14:42:44 -07:00
liv
34e31232df feat(changelog): Use clog for changelogs 2019-06-05 13:14:51 +02:00
liv
7fca1d28af 1.3.0 2019-06-05 12:37:02 +02:00
bors
9c3d765403 Auto merge of #167 - rust-lang:fix/remove-highlighting, r=komaeda
Remove highlighting and syntect

Closes #166 and #122
2019-06-05 10:23:37 +00:00
liv
bb652ceb91 Commit Cargo.lock file 2019-06-05 12:22:41 +02:00
liv
62696f5819 Remove highlighting and syntect 2019-06-05 12:18:50 +02:00
bors
41170ce341 Auto merge of #164 - HanKruiger:master, r=komaeda
Fix broken link
2019-05-26 14:07:16 +00:00
bors
e2092a4ddd Auto merge of #165 - gushroom:fix-outdated-links, r=komaeda
fixed outdated links

The links had the 2018 book in them and they were outdated.
2019-05-26 13:58:24 +00:00
gushroom
fd1441d122 fixed outdated links 2019-05-26 14:57:56 +02:00
HanKruiger
e1422c6443 Fix broken link 2019-05-26 14:45:04 +02:00
bors
1f07fd4150 Auto merge of #163 - briankung:add_structs, r=komaeda
Adds a simple exercise for structures

Thanks for rustlings! Here's a small contribution in return.
2019-05-25 13:40:15 +00:00
Brian Kung
9b92aa08ae Adds a simple exercise for structures 2019-05-25 06:39:58 -05:00
bors
8bf8cbbd61 Auto merge of #162 - c-rustacean:rustfmt-and-ws-fixes, r=komaeda
errorsn.rs: Separate also the hints from each other to avoid accidental viewing
2019-05-23 11:01:15 +00:00
Eddy Petrisor
f507844102 errorsn.rs: Separate also the hints from each other to avoid accidental viewing
Signed-off-by: Eddy Petrisor <eddy.petrisor@gmail.com>
2019-05-23 12:21:42 +03:00
bors
fffbb60ed9 Auto merge of #161 - c-rustacean:rustfmt-and-ws-fixes, r=komaeda
Rustfmt and ws fixes
2019-05-22 12:29:20 +00:00
Eddy Petrisor
9aec4abc4d rustfmt the exercises
Signed-off-by: Eddy Petrisor <eddy.petrisor@gmail.com>
2019-05-22 14:50:40 +03:00
Eddy Petrisor
a53b3f199f iterator3.rs: whitespace fixes
Signed-off-by: Eddy Petrisor <eddy.petrisor@gmail.com>
2019-05-22 14:50:40 +03:00
Eddy Petrisor
d6d696b66a errorsn.rs: Separate hints from code, so hints are not accidentally seen
Signed-off-by: Eddy Petrisor <eddy.petrisor@gmail.com>
2019-05-22 14:50:39 +03:00
Eddy Petrisor
ca6bf966dd Cargo fmt the rustlings application code
Signed-off-by: Eddy Petrisor <eddy.petrisor@gmail.com>
2019-05-22 14:50:23 +03:00
liv
5a9f8860ca Add not passing integration test (#154)
Add not passing integration test
2019-05-22 10:53:46 +02:00
liv
5423bc66a9 Update errors1.rs - Add Result type signature as it is difficult for new comers to understand Generics and Error all at once. (#157)
Update errors1.rs - Add Result type signature as it is difficult for new comers to understand Generics and Error all at once.
2019-05-22 10:53:18 +02:00
Julien Bisconti
187d2ad226 Update errors1.rs
Add Result type signature as it is difficult for new comers to understand Generics and Error all at once
2019-05-12 14:54:37 +02:00
Denys Smirnov
7cf0d5d15e Add not passing integration test 2019-05-09 20:17:38 +03:00
liv
1f2ee8cb62 1.2.2 2019-05-07 12:32:50 +02:00
liv
35c3d0b3fc Revert --nocapture flag
This closes #149 and #152
2019-05-07 12:31:02 +02:00
liv
0279294972 1.2.1 2019-04-22 19:12:30 +08:00
liv
7eddee6f7a add a slightly more helpful error message 2019-04-22 18:43:39 +08:00
liv
f2c48cfac5 fix the --nocapture functionality 2019-04-22 18:42:32 +08:00
liv
6ae0a00211 1.2.0 2019-04-22 13:09:28 +08:00
liv
bfcf38c8bc damn it 2019-04-22 07:05:46 +02:00
liv
9e328da641 use -- --nocapture when testing 2019-04-22 05:49:23 +02:00
bors
e336d04c79 Auto merge of #144 - yvan-sraka:patch-0, r=komaeda
Add errors to exercises that compile without user changes

Hi !

I played a bit with rustlings, and I felt that some exercises were incorrect because they passed the tests without me needing to edit the files!

This gave me the feeling that the exercise was skiped! Especially when I use `rustlings watch`, it is easy to miss an exercise because the compilation error that is displayed is the one of the next exercise ...

It is easy to identify "broken" exercises with:

```bash
% find exercises -name "*.rs" | xargs -n 1 rustlings run
...
 Successfully ran exercises/move_semantics/move_semantics4.rs
 Successfully tested exercises/test2.rs
```

My suggestion is to make sure that these files trigger a compilation error by adding a simple syntax error (e.g. with `???` in the code that must change) so that our Rustacean can then play with it!
2019-04-22 01:50:48 +00:00
Yvan Sraka
a71bc62c29 Add errors to exercises that compile without user changes 2019-04-22 00:09:30 +02:00
330 changed files with 15222 additions and 3254 deletions

7
.editorconfig Normal file
View File

@@ -0,0 +1,7 @@
root = true
[*.rs]
end_of_line = lf
insert_final_newline = true
indent_style = space
indent_size = 4

43
.github/workflows/rust.yml vendored Normal file
View File

@@ -0,0 +1,43 @@
name: Rustlings Tests
on:
push:
branches: [main]
pull_request:
branches: [main]
env:
CARGO_TERM_COLOR: always
jobs:
clippy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: cargo clippy -- --deny warnings
fmt:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: DavidAnson/markdownlint-cli2-action@v16
with:
globs: "exercises/**/*.md"
- name: Run cargo fmt
run: cargo fmt --all --check
test:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macOS-latest]
steps:
- uses: actions/checkout@v4
- uses: swatinem/rust-cache@v2
- name: Run cargo test
run: cargo test --workspace
dev-check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: swatinem/rust-cache@v2
- name: Run rustlings dev check
run: cargo run -- dev check --require-solutions

87
.github/workflows/web.yml vendored Normal file
View File

@@ -0,0 +1,87 @@
# Workflow to build your docs with oranda (and mdbook)
# and deploy them to Github Pages
name: Web
# We're going to push to the gh-pages branch, so we need that permission
permissions:
contents: write
# What situations do we want to build docs in?
# All of these work independently and can be removed / commented out
# if you don't want oranda/mdbook running in that situation
on:
# Check that a PR didn't break docs!
#
# Note that the "Deploy to Github Pages" step won't run in this mode,
# so this won't have any side-effects. But it will tell you if a PR
# completely broke oranda/mdbook. Sadly we don't provide previews (yet)!
pull_request:
# Whenever something gets pushed to main, update the docs!
# This is great for getting docs changes live without cutting a full release.
#
# Note that if you're using cargo-dist, this will "race" the Release workflow
# that actually builds the Github Release that oranda tries to read (and
# this will almost certainly complete first). As a result you will publish
# docs for the latest commit but the oranda landing page won't know about
# the latest release. The workflow_run trigger below will properly wait for
# cargo-dist, and so this half-published state will only last for ~10 minutes.
#
# If you only want docs to update with releases, disable this, or change it to
# a "release" branch. You can, of course, also manually trigger a workflow run
# when you want the docs to update.
push:
branches:
- main
# Whenever a workflow called "Release" completes, update the docs!
#
# If you're using cargo-dist, this is recommended, as it will ensure that
# oranda always sees the latest release right when it's available. Note
# however that Github's UI is wonky when you use workflow_run, and won't
# show this workflow as part of any commit. You have to go to the "actions"
# tab for your repo to see this one running (the gh-pages deploy will also
# only show up there).
workflow_run:
workflows: [ "Release" ]
types:
- completed
# Alright, let's do it!
jobs:
web:
name: Build and deploy site and docs
runs-on: ubuntu-latest
steps:
# Setup
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: swatinem/rust-cache@v2
# If you use any mdbook plugins, here's the place to install them!
# Install and run oranda (and mdbook)
# This will write all output to ./public/ (including copying mdbook's output to there)
- name: Install and run oranda
run: |
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/oranda/releases/download/v0.3.1/oranda-installer.sh | sh
oranda build
# Deploy to our gh-pages branch (creating it if it doesn't exist)
# the "public" dir that oranda made above will become the root dir
# of this branch.
#
# Note that once the gh-pages branch exists, you must
# go into repo's settings > pages and set "deploy from branch: gh-pages"
# the other defaults work fine.
- name: Deploy to Github Pages
uses: JamesIves/github-pages-deploy-action@v4.4.1
# ONLY if we're on main (so no PRs or feature branches allowed!)
if: ${{ github.ref == 'refs/heads/main' }}
with:
branch: gh-pages
# Gotta tell the action where to find oranda's output
folder: public
token: ${{ secrets.GITHUB_TOKEN }}
single-commit: true

22
.gitignore vendored
View File

@@ -1,5 +1,23 @@
*.swp
# Cargo
target/
**/*.rs.bk
Cargo.lock
!/Cargo.lock
# State file
.rustlings-state.txt
# oranda
public/
.netlify
# OS
.DS_Store
.direnv/
# Editor
*.swp
.idea
*.iml
# Ignore file for editors like Helix
.ignore

2
.markdownlint.yml Normal file
View File

@@ -0,0 +1,2 @@
# MD013/line-length Line length, Expected: 80
MD013: false

View File

@@ -1,11 +0,0 @@
language: rust
rust:
- stable
- beta
- nightly
script: cargo test --verbose
matrix:
allow_failures:
- rust: nightly
fast_finish: true
cache: cargo

4
.typos.toml Normal file
View File

@@ -0,0 +1,4 @@
[files]
extend-exclude = [
"CHANGELOG.md",
]

1028
CHANGELOG.md Normal file

File diff suppressed because it is too large Load Diff

61
CONTRIBUTING.md Normal file
View File

@@ -0,0 +1,61 @@
# Contributing to Rustlings
First off, thanks for taking the time to contribute! ❤️
## Quick Reference
I want to …
- _report a bug!_ ➡️ [open an issue](#issues)
- _fix a bug!_ ➡️ [open a pull request](#pull-requests)
- _implement a new feature!_ ➡️ [open an issue to discuss it first, then a pull request](#issues)
- _add an exercise!_ ➡️ [read this](#adding-an-exercise)
- _update an outdated exercise!_ ➡️ [open a pull request](#pull-requests)
## Issues
You can open an issue [here](https://github.com/rust-lang/rustlings/issues/new).
If you're reporting a bug, please include the output of the following commands:
- `cargo --version`
- `rustlings --version`
- `ls -la`
- Your OS name and version
## Pull Requests
You are welcome to open a pull request, but unless it is small and trivial, **please open an issue to discuss your idea first** 🙏🏼
Opening a pull request is as easy as forking the repository and committing your changes.
If you need any help with it or face any Git related problems, don't hesitate to ask for help 🤗
It may take time to review your pull request.
Please be patient 😇
When updating an exercise, check if its solution needs to be updated.
## Adding An Exercise
- Name the file `exercises/yourTopic/yourTopicN.rs`.
- Make sure to put in some helpful links, and link to sections of The Book in `exercises/yourTopic/README.md`.
- In the exercise, add a `// TODO: …` comment where user changes are required.
- Add a solution at `solutions/yourTopic/yourTopicN.rs` with comments explaining it.
- Add the [metadata for your exercise](#exercise-metadata) in the `rustlings-macros/info.toml` file.
- Make sure your exercise runs with `rustlings run yourTopicN`.
- [Open a pull request](#pull-requests).
### Exercise Metadata
The exercise metadata should contain the following:
```toml
[[exercises]]
name = "yourTopicN"
dir = "yourTopic"
hint = """
A useful (multi-line) hint for your exercise.
Include links to a section in The Book or a documentation page."""
```
If your exercise doesn't contain any test, add `test = false` to the exercise metadata.
But adding tests is recommended.

899
Cargo.lock generated Normal file
View File

@@ -0,0 +1,899 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
version = 3
[[package]]
name = "ahash"
version = "0.8.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011"
dependencies = [
"cfg-if",
"once_cell",
"version_check",
"zerocopy",
]
[[package]]
name = "anstream"
version = "0.6.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "64e15c1ab1f89faffbf04a634d5e1962e9074f2741eef6d97f3c4e322426d526"
dependencies = [
"anstyle",
"anstyle-parse",
"anstyle-query",
"anstyle-wincon",
"colorchoice",
"is_terminal_polyfill",
"utf8parse",
]
[[package]]
name = "anstyle"
version = "1.0.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1"
[[package]]
name = "anstyle-parse"
version = "0.2.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "eb47de1e80c2b463c735db5b217a0ddc39d612e7ac9e2e96a5aed1f57616c1cb"
dependencies = [
"utf8parse",
]
[[package]]
name = "anstyle-query"
version = "1.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6d36fc52c7f6c869915e99412912f22093507da8d9e942ceaf66fe4b7c14422a"
dependencies = [
"windows-sys 0.52.0",
]
[[package]]
name = "anstyle-wincon"
version = "3.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5bf74e1b6e971609db8ca7a9ce79fd5768ab6ae46441c572e46cf596f59e57f8"
dependencies = [
"anstyle",
"windows-sys 0.52.0",
]
[[package]]
name = "anyhow"
version = "1.0.86"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da"
[[package]]
name = "autocfg"
version = "1.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0"
[[package]]
name = "bitflags"
version = "1.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
[[package]]
name = "bitflags"
version = "2.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de"
[[package]]
name = "cfg-if"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
[[package]]
name = "clap"
version = "4.5.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ed6719fffa43d0d87e5fd8caeab59be1554fb028cd30edc88fc4369b17971019"
dependencies = [
"clap_builder",
"clap_derive",
]
[[package]]
name = "clap_builder"
version = "4.5.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "216aec2b177652e3846684cbfe25c9964d18ec45234f0f5da5157b207ed1aab6"
dependencies = [
"anstream",
"anstyle",
"clap_lex",
"strsim",
]
[[package]]
name = "clap_derive"
version = "4.5.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "501d359d5f3dcaf6ecdeee48833ae73ec6e42723a1e52419c79abf9507eec0a0"
dependencies = [
"heck",
"proc-macro2",
"quote",
"syn",
]
[[package]]
name = "clap_lex"
version = "0.7.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97"
[[package]]
name = "colorchoice"
version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0"
[[package]]
name = "crossbeam-channel"
version = "0.5.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "33480d6946193aa8033910124896ca395333cae7e2d1113d1fef6c3272217df2"
dependencies = [
"crossbeam-utils",
]
[[package]]
name = "crossbeam-utils"
version = "0.8.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80"
[[package]]
name = "crossterm"
version = "0.28.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "829d955a0bb380ef178a640b91779e3987da38c9aea133b20614cfed8cdea9c6"
dependencies = [
"bitflags 2.6.0",
"crossterm_winapi",
"mio 1.0.2",
"parking_lot",
"rustix",
"signal-hook",
"signal-hook-mio",
"winapi",
]
[[package]]
name = "crossterm_winapi"
version = "0.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b"
dependencies = [
"winapi",
]
[[package]]
name = "equivalent"
version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
[[package]]
name = "errno"
version = "0.3.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba"
dependencies = [
"libc",
"windows-sys 0.52.0",
]
[[package]]
name = "fastrand"
version = "2.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6"
[[package]]
name = "filetime"
version = "0.2.25"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "35c0522e981e68cbfa8c3f978441a5f34b30b96e146b33cd3359176b50fe8586"
dependencies = [
"cfg-if",
"libc",
"libredox",
"windows-sys 0.59.0",
]
[[package]]
name = "fsevent-sys"
version = "4.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "76ee7a02da4d231650c7cea31349b889be2f45ddb3ef3032d2ec8185f6313fd2"
dependencies = [
"libc",
]
[[package]]
name = "hashbrown"
version = "0.14.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
[[package]]
name = "heck"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
[[package]]
name = "hermit-abi"
version = "0.3.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
[[package]]
name = "indexmap"
version = "2.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "93ead53efc7ea8ed3cfb0c79fc8023fbb782a5432b52830b6518941cebe6505c"
dependencies = [
"equivalent",
"hashbrown",
]
[[package]]
name = "inotify"
version = "0.9.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f8069d3ec154eb856955c1c0fbffefbf5f3c40a104ec912d4797314c1801abff"
dependencies = [
"bitflags 1.3.2",
"inotify-sys",
"libc",
]
[[package]]
name = "inotify-sys"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e05c02b5e89bff3b946cedeca278abc628fe811e604f027c45a8aa3cf793d0eb"
dependencies = [
"libc",
]
[[package]]
name = "is_terminal_polyfill"
version = "1.70.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf"
[[package]]
name = "itoa"
version = "1.0.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"
[[package]]
name = "kqueue"
version = "1.0.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7447f1ca1b7b563588a205fe93dea8df60fd981423a768bc1c0ded35ed147d0c"
dependencies = [
"kqueue-sys",
"libc",
]
[[package]]
name = "kqueue-sys"
version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ed9625ffda8729b85e45cf04090035ac368927b8cebc34898e7c120f52e4838b"
dependencies = [
"bitflags 1.3.2",
"libc",
]
[[package]]
name = "libc"
version = "0.2.158"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439"
[[package]]
name = "libredox"
version = "0.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d"
dependencies = [
"bitflags 2.6.0",
"libc",
"redox_syscall",
]
[[package]]
name = "linux-raw-sys"
version = "0.4.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89"
[[package]]
name = "lock_api"
version = "0.4.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17"
dependencies = [
"autocfg",
"scopeguard",
]
[[package]]
name = "log"
version = "0.4.22"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24"
[[package]]
name = "memchr"
version = "2.7.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3"
[[package]]
name = "mio"
version = "0.8.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c"
dependencies = [
"libc",
"log",
"wasi",
"windows-sys 0.48.0",
]
[[package]]
name = "mio"
version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec"
dependencies = [
"hermit-abi",
"libc",
"log",
"wasi",
"windows-sys 0.52.0",
]
[[package]]
name = "notify"
version = "6.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6205bd8bb1e454ad2e27422015fb5e4f2bcc7e08fa8f27058670d208324a4d2d"
dependencies = [
"bitflags 2.6.0",
"crossbeam-channel",
"filetime",
"fsevent-sys",
"inotify",
"kqueue",
"libc",
"log",
"mio 0.8.11",
"walkdir",
"windows-sys 0.48.0",
]
[[package]]
name = "notify-debouncer-mini"
version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5d40b221972a1fc5ef4d858a2f671fb34c75983eb385463dff3780eeff6a9d43"
dependencies = [
"log",
"notify",
]
[[package]]
name = "once_cell"
version = "1.19.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
[[package]]
name = "os_pipe"
version = "1.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5ffd2b0a5634335b135d5728d84c5e0fd726954b87111f7506a61c502280d982"
dependencies = [
"libc",
"windows-sys 0.59.0",
]
[[package]]
name = "parking_lot"
version = "0.12.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27"
dependencies = [
"lock_api",
"parking_lot_core",
]
[[package]]
name = "parking_lot_core"
version = "0.9.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8"
dependencies = [
"cfg-if",
"libc",
"redox_syscall",
"smallvec",
"windows-targets 0.52.6",
]
[[package]]
name = "proc-macro2"
version = "1.0.86"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77"
dependencies = [
"unicode-ident",
]
[[package]]
name = "quote"
version = "1.0.37"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af"
dependencies = [
"proc-macro2",
]
[[package]]
name = "redox_syscall"
version = "0.5.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2a908a6e00f1fdd0dfd9c0eb08ce85126f6d8bbda50017e74bc4a4b7d4a926a4"
dependencies = [
"bitflags 2.6.0",
]
[[package]]
name = "rustix"
version = "0.38.35"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a85d50532239da68e9addb745ba38ff4612a242c1c7ceea689c4bc7c2f43c36f"
dependencies = [
"bitflags 2.6.0",
"errno",
"libc",
"linux-raw-sys",
"windows-sys 0.52.0",
]
[[package]]
name = "rustlings"
version = "6.3.0"
dependencies = [
"ahash",
"anyhow",
"clap",
"crossterm",
"notify-debouncer-mini",
"os_pipe",
"rustlings-macros",
"serde",
"serde_json",
"tempfile",
"toml_edit",
]
[[package]]
name = "rustlings-macros"
version = "6.3.0"
dependencies = [
"quote",
"serde",
"toml_edit",
]
[[package]]
name = "ryu"
version = "1.0.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f"
[[package]]
name = "same-file"
version = "1.0.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
dependencies = [
"winapi-util",
]
[[package]]
name = "scopeguard"
version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
[[package]]
name = "serde"
version = "1.0.209"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "99fce0ffe7310761ca6bf9faf5115afbc19688edd00171d81b1bb1b116c63e09"
dependencies = [
"serde_derive",
]
[[package]]
name = "serde_derive"
version = "1.0.209"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a5831b979fd7b5439637af1752d535ff49f4860c0f341d1baeb6faf0f4242170"
dependencies = [
"proc-macro2",
"quote",
"syn",
]
[[package]]
name = "serde_json"
version = "1.0.127"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8043c06d9f82bd7271361ed64f415fe5e12a77fdb52e573e7f06a516dea329ad"
dependencies = [
"itoa",
"memchr",
"ryu",
"serde",
]
[[package]]
name = "serde_spanned"
version = "0.6.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "eb5b1b31579f3811bf615c144393417496f152e12ac8b7663bf664f4a815306d"
dependencies = [
"serde",
]
[[package]]
name = "signal-hook"
version = "0.3.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801"
dependencies = [
"libc",
"signal-hook-registry",
]
[[package]]
name = "signal-hook-mio"
version = "0.2.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "34db1a06d485c9142248b7a054f034b349b212551f3dfd19c94d45a754a217cd"
dependencies = [
"libc",
"mio 1.0.2",
"signal-hook",
]
[[package]]
name = "signal-hook-registry"
version = "1.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1"
dependencies = [
"libc",
]
[[package]]
name = "smallvec"
version = "1.13.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
[[package]]
name = "strsim"
version = "0.11.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
[[package]]
name = "syn"
version = "2.0.76"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "578e081a14e0cefc3279b0472138c513f37b41a08d5a3cca9b6e4e8ceb6cd525"
dependencies = [
"proc-macro2",
"quote",
"unicode-ident",
]
[[package]]
name = "tempfile"
version = "3.12.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "04cbcdd0c794ebb0d4cf35e88edd2f7d2c4c3e9a5a6dab322839b321c6a87a64"
dependencies = [
"cfg-if",
"fastrand",
"once_cell",
"rustix",
"windows-sys 0.59.0",
]
[[package]]
name = "toml_datetime"
version = "0.6.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41"
dependencies = [
"serde",
]
[[package]]
name = "toml_edit"
version = "0.22.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "583c44c02ad26b0c3f3066fe629275e50627026c51ac2e595cca4c230ce1ce1d"
dependencies = [
"indexmap",
"serde",
"serde_spanned",
"toml_datetime",
"winnow",
]
[[package]]
name = "unicode-ident"
version = "1.0.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
[[package]]
name = "utf8parse"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821"
[[package]]
name = "version_check"
version = "0.9.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a"
[[package]]
name = "walkdir"
version = "2.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b"
dependencies = [
"same-file",
"winapi-util",
]
[[package]]
name = "wasi"
version = "0.11.0+wasi-snapshot-preview1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
[[package]]
name = "winapi"
version = "0.3.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
dependencies = [
"winapi-i686-pc-windows-gnu",
"winapi-x86_64-pc-windows-gnu",
]
[[package]]
name = "winapi-i686-pc-windows-gnu"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
[[package]]
name = "winapi-util"
version = "0.1.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb"
dependencies = [
"windows-sys 0.59.0",
]
[[package]]
name = "winapi-x86_64-pc-windows-gnu"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
[[package]]
name = "windows-sys"
version = "0.48.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
dependencies = [
"windows-targets 0.48.5",
]
[[package]]
name = "windows-sys"
version = "0.52.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
dependencies = [
"windows-targets 0.52.6",
]
[[package]]
name = "windows-sys"
version = "0.59.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b"
dependencies = [
"windows-targets 0.52.6",
]
[[package]]
name = "windows-targets"
version = "0.48.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
dependencies = [
"windows_aarch64_gnullvm 0.48.5",
"windows_aarch64_msvc 0.48.5",
"windows_i686_gnu 0.48.5",
"windows_i686_msvc 0.48.5",
"windows_x86_64_gnu 0.48.5",
"windows_x86_64_gnullvm 0.48.5",
"windows_x86_64_msvc 0.48.5",
]
[[package]]
name = "windows-targets"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973"
dependencies = [
"windows_aarch64_gnullvm 0.52.6",
"windows_aarch64_msvc 0.52.6",
"windows_i686_gnu 0.52.6",
"windows_i686_gnullvm",
"windows_i686_msvc 0.52.6",
"windows_x86_64_gnu 0.52.6",
"windows_x86_64_gnullvm 0.52.6",
"windows_x86_64_msvc 0.52.6",
]
[[package]]
name = "windows_aarch64_gnullvm"
version = "0.48.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
[[package]]
name = "windows_aarch64_gnullvm"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"
[[package]]
name = "windows_aarch64_msvc"
version = "0.48.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
[[package]]
name = "windows_aarch64_msvc"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
[[package]]
name = "windows_i686_gnu"
version = "0.48.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
[[package]]
name = "windows_i686_gnu"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b"
[[package]]
name = "windows_i686_gnullvm"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"
[[package]]
name = "windows_i686_msvc"
version = "0.48.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
[[package]]
name = "windows_i686_msvc"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
[[package]]
name = "windows_x86_64_gnu"
version = "0.48.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
[[package]]
name = "windows_x86_64_gnu"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"
[[package]]
name = "windows_x86_64_gnullvm"
version = "0.48.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
[[package]]
name = "windows_x86_64_gnullvm"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"
[[package]]
name = "windows_x86_64_msvc"
version = "0.48.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
[[package]]
name = "windows_x86_64_msvc"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
[[package]]
name = "winnow"
version = "0.6.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "68a9bda4691f099d435ad181000724da8e5899daa10713c2d432552b9ccd3a6f"
dependencies = [
"memchr",
]
[[package]]
name = "zerocopy"
version = "0.7.35"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0"
dependencies = [
"zerocopy-derive",
]
[[package]]
name = "zerocopy-derive"
version = "0.7.35"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e"
dependencies = [
"proc-macro2",
"quote",
"syn",
]

View File

@@ -1,21 +1,88 @@
[workspace]
resolver = "2"
exclude = [
"tests/test_exercises",
"dev",
]
[workspace.package]
version = "6.3.0"
authors = [
"Mo Bitar <mo8it@proton.me>", # https://github.com/mo8it
"Liv <mokou@fastmail.com>", # https://github.com/shadows-withal
# Alumni
"Carol (Nichols || Goulding) <carol.nichols@gmail.com>", # https://github.com/carols10cents
]
repository = "https://github.com/rust-lang/rustlings"
license = "MIT"
edition = "2021" # On Update: Update the edition of the `rustfmt` command that checks the solutions.
rust-version = "1.80"
[workspace.dependencies]
serde = { version = "1.0.209", features = ["derive"] }
toml_edit = { version = "0.22.20", default-features = false, features = ["parse", "serde"] }
[package]
name = "rustlings"
version = "1.1.1"
authors = ["Olivia <819880950@qq.com>", "Carol (Nichols || Goulding) <carol.nichols@gmail.com"]
edition = "2018"
description = "Small exercises to get you used to reading and writing Rust code!"
version.workspace = true
authors.workspace = true
repository.workspace = true
license.workspace = true
edition.workspace = true
rust-version.workspace = true
keywords = [
"exercise",
"learning",
]
include = [
"/src/",
"/exercises/",
"/solutions/",
# A symlink to be able to include `dev/Cargo.toml` although `dev` is excluded.
"/dev-Cargo.toml",
"/README.md",
"/LICENSE",
]
[dependencies]
clap = "2.32.0"
indicatif = "0.9.0"
console = "0.6.2"
syntect = "3.0.2"
notify = "4.0.0"
toml = "0.4.10"
serde = {version = "1.0.10", features = ["derive"]}
[[bin]]
name = "rustlings"
path = "src/main.rs"
ahash = { version = "0.8.11", default-features = false }
anyhow = "1.0.86"
clap = { version = "4.5.16", features = ["derive"] }
crossterm = { version = "0.28.1", default-features = false, features = ["windows", "events"] }
notify-debouncer-mini = { version = "0.4.1", default-features = false }
os_pipe = "1.2.1"
rustlings-macros = { path = "rustlings-macros", version = "=6.3.0" }
serde_json = "1.0.127"
serde.workspace = true
toml_edit.workspace = true
[dev-dependencies]
assert_cmd = "0.11.0"
tempfile = "3.12.0"
[profile.release]
panic = "abort"
[profile.dev]
panic = "abort"
[package.metadata.release]
pre-release-hook = ["./release-hook.sh"]
[workspace.lints.rust]
unsafe_code = "forbid"
unstable_features = "forbid"
[workspace.lints.clippy]
empty_loop = "forbid"
disallowed-types = "deny"
disallowed-methods = "deny"
infinite_loop = "deny"
mem_forget = "deny"
dbg_macro = "warn"
todo = "warn"
# TODO: Remove after the following fix is released: https://github.com/rust-lang/rust-clippy/pull/13102
needless_option_as_deref = "allow"
[lints]
workspace = true

214
README.md
View File

@@ -1,126 +1,156 @@
![crab pet](http://i.imgur.com/LbZJgmm.gif)
<div class="oranda-hide">
# rustlings 🦀❤️
# Rustlings 🦀❤️
Greetings and welcome to `rustlings`. This project contains small exercises to get you used to reading and writing Rust code. This includes reading and responding to compiler messages!
</div>
_...looking for the old, web-based version of Rustlings? Try [here](https://github.com/rust-lang/rustlings/tree/rustlings-1)_
Greetings and welcome to Rustlings.
This project contains small exercises to get you used to reading and writing Rust code.
This includes reading and responding to compiler messages!
Alternatively, for a first-time Rust learner, there's several other resources:
It is recommended to do the Rustlings exercises in parallel to reading [the official Rust book](https://doc.rust-lang.org/book/), the most comprehensive resource for learning Rust 📚️
- [The Book](https://doc.rust-lang.org/book/index.html) - The most comprehensive resource for learning Rust, but a bit theoretical sometimes. You will be using this along with Rustlings!
- [Rust By Example](https://doc.rust-lang.org/rust-by-example/index.html) - Learn Rust by solving little exercises! It's almost like `rustlings`, but online
[Rust By Example](https://doc.rust-lang.org/rust-by-example/) is another recommended resource that you might find helpful.
It contains code examples and exercises similar to Rustlings, but online.
## Getting Started
_Note: If you're on MacOS, make sure you've installed Xcode and its developer tools by typing `xcode-select --install`._
### Installing Rust
_Note: If you have Xcode 10+ installed, you also need to install the package file found at `/Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg`._
Before installing Rustlings, you need to have the **latest version of Rust** installed.
Visit [www.rust-lang.org/tools/install](https://www.rust-lang.org/tools/install) for further instructions on installing Rust.
This will also install _Cargo_, Rust's package/project manager.
You will need to have Rust installed. You can get it by visiting https://rustup.rs. This'll also install Cargo, Rust's package/project manager.
> 🐧 If you're on Linux, make sure you've installed `gcc` (for a linker).
>
> Deb: `sudo apt install gcc`.
> Dnf: `sudo dnf install gcc`.
## MacOS/Linux
> 🍎 If you're on MacOS, make sure you've installed Xcode and its developer tools by running `xcode-select --install`.
Just run:
### Installing Rustlings
The following command will download and compile Rustlings:
```bash
curl -L https://git.io/rustlings | bash
# Or if you want it to be installed to a different path:
curl -L https://git.io/rustlings | bash -s mypath/
cargo install rustlings
```
This will install Rustlings and give you access to the `rustlings` command. Run it to get started!
<details>
<summary><strong>If the installation fails…</strong> (<em>click to expand</em>)</summary>
## Windows/Manually
- Make sure you have the latest Rust version by running `rustup update`
- Try adding the `--locked` flag: `cargo install rustlings --locked`
- Otherwise, please [report the issue](https://github.com/rust-lang/rustlings/issues/new)
Basically: Clone the repository, checkout to the latest tag, run `cargo install`.
</details>
### Initialization
After installing Rustlings, run the following command to initialize the `rustlings/` directory:
```bash
git clone https://github.com/rust-lang/rustlings
cd rustlings
git checkout tags/1.0.0 # or whatever the latest version is (find out at https://github.com/rust-lang/rustlings/releases/latest)
cargo install --force --path .
rustlings init
```
Same as above, run `rustlings` to get started.
<details>
<summary><strong>If the command <code>rustlings</code> can't be found…</strong> (<em>click to expand</em>)</summary>
You are probably using Linux and installed Rust using your package manager.
Cargo installs binaries to the directory `~/.cargo/bin`.
Sadly, package managers often don't add `~/.cargo/bin` to your `PATH` environment variable.
The solution is to …
- either add `~/.cargo/bin` manually to `PATH`
- or to uninstall Rust from the package manager and install it using the official way with `rustup`: https://www.rust-lang.org/tools/install
</details>
Now, go into the newly initialized directory and launch Rustlings for further instructions on getting started with the exercises:
```bash
cd rustlings/
rustlings
```
## Working environment
### Editor
Our general recommendation is [VS Code](https://code.visualstudio.com/) with the [rust-analyzer plugin](https://marketplace.visualstudio.com/items?itemName=rust-lang.rust-analyzer).
But any editor that supports [rust-analyzer](https://rust-analyzer.github.io/) should be enough for working on the exercises.
### Terminal
While working with Rustlings, please use a modern terminal for the best user experience.
The default terminal on Linux and Mac should be sufficient.
On Windows, we recommend the [Windows Terminal](https://aka.ms/terminal).
## Doing exercises
The exercises are sorted by topic and can be found in the subdirectory `rustlings/exercises/<topic>`. For every topic there is an additional README file with some resources to get you started on the topic. We really recommend that you have a look at them before you start.
The exercises are sorted by topic and can be found in the subdirectory `exercises/<topic>`.
For every topic, there is an additional `README.md` file with some resources to get you started on the topic.
We highly recommend that you have a look at them before you start 📚️
The task is simple. Most exercises contain an error that keep it from compiling, and it's up to you to fix it! Some exercises are also ran as tests, but rustlings handles them all the same. To run the exercises in the recommended order, execute:
Most exercises contain an error that keeps them from compiling, and it's up to you to fix it!
Some exercises contain tests that need to pass for the exercise to be done ✅
Search for `TODO` and `todo!()` to find out what you need to change.
Ask for hints by entering `h` in the _watch mode_ 💡
### Watch Mode
After [initialization](#initialization), Rustlings can be launched by simply running the command `rustlings`.
This will start the _watch mode_ which walks you through the exercises in a predefined order (what we think is best for newcomers).
It will rerun the current exercise automatically every time you change the exercise's file in the `exercises/` directory.
<details>
<summary><strong>If detecting file changes in the <code>exercises/</code> directory fails…</strong> (<em>click to expand</em>)</summary>
> You can add the **`--manual-run`** flag (`rustlings --manual-run`) to manually rerun the current exercise by entering `r` in the watch mode.
>
> Please [report the issue](https://github.com/rust-lang/rustlings/issues/new) with some information about your operating system and whether you run Rustlings in a container or virtual machine (e.g. WSL).
</details>
### Exercise List
In the [watch mode](#watch-mode) (after launching `rustlings`), you can enter `l` to open the interactive exercise list.
The list allows you to…
- See the status of all exercises (done or pending)
- `c`: Continue at another exercise (temporarily skip some exercises or go back to a previous one)
- `r`: Reset status and file of an exercise (you need to _reload/reopen_ its file in your editor afterwards)
See the footer of the list for all possible keys.
## Continuing On
Once you've completed Rustlings, put your new knowledge to good use!
Continue practicing your Rust skills by building your own projects, contributing to Rustlings, or finding other open-source projects to contribute to.
## Third-Party Exercises
Do you want to create your own set of Rustlings exercises to focus on some specific topic?
Or do you want to translate the original Rustlings exercises?
Then follow the link to the guide about [third-party exercises](https://github.com/rust-lang/rustlings/blob/main/THIRD_PARTY_EXERCISES.md)!
## Uninstalling Rustlings
If you want to remove Rustlings from your system, run the following command:
```bash
rustlings verify
cargo uninstall rustlings
```
This will try to verify the completion of every exercise in a predetermined order (what we think is best for newcomers). If you don't want to rerun `verify` every time you change a file, you can run:
```bash
rustlings watch
```
This will do the same as verify, but won't quit after running and instead automatically rerun as soon as you change a file in the `exercises/` directory.
In case you want to go by your own order, or want to only verify a single exercise, you can run:
```bash
rustlings run exercises/path/to/exercise.rs
```
In case you get stuck, there is usually a hint at the bottom of each exercise.
## Testing yourself
After every couple of sections, there will be a test that'll test your knowledge on a bunch of sections at once. These tests are found in `exercises/testN.rs`.
## Completion
Rustlings isn't done; there are a couple of sections that are very experimental and don't have proper documentation. These include:
- Errors (`exercises/errors/`)
- Option (`exercises/option/`)
- Result (`exercises/result/`)
- Move Semantics (could still be improved, `exercises/move_semantics/`)
Additionally, we could use exercises on a couple of topics:
- Structs
- Better ownership stuff
- `impl`
- ??? probably more
If you are interested in improving or adding new ones, please feel free to contribute! Read on for more information :)
## Contributing
### Adding an exercise
See [CONTRIBUTING.md](https://github.com/rust-lang/rustlings/blob/main/CONTRIBUTING.md) 🔗
First step is to add the exercise! Call it `exercises/yourTopic/yourTopicN.rs`, make sure to
put in some helpful links, and link to sections of the book in `exercises/yourTopic/README.md`.
Next you want to make sure it runs when using `rustlings`. All exercises are stored in `info.toml`, under the `exercises` array. They're ordered by the order they're ran when using `rustlings verify`.
You want to make sure where in the file you add your exercise. If you're not sure, add it at the bottom and ask in your pull request. To add an exercise, edit the file like this:
```diff
...
+ [[exercises]]
+ path = "exercises/yourTopic/yourTopicN.rs"
+ mode = "compile"
...
```
The `mode` attribute decides whether Rustlings will only compile your exercise, or compile and test it. If you have tests to verify in your exercise, choose `test`, otherwise `compile`.
That's all! Feel free to put up a pull request.
### Working on the source code
`rustlings` is basically a glorified `rustc` wrapper. Therefore the source code
isn't really that complicated since the bulk of the work is done by `rustc`.
`src/main.rs` contains a simple `clap` CLI that loads from `src/verify.rs` and `src/run.rs`.
## Credits
`rustlings` was originally written by [Carol](https://github.com/carols10cents)!
## Contributors ✨
Thanks to [all the wonderful contributors](https://github.com/rust-lang/rustlings/graphs/contributors) 🎉

53
THIRD_PARTY_EXERCISES.md Normal file
View File

@@ -0,0 +1,53 @@
# Third-Party Exercises
The support of Rustlings for third-party exercises allows you to create your own set of Rustlings exercises to focus on some specific topic.
You could also offer a translation of the original Rustlings exercises as third-party exercises.
## Getting started
To create third-party exercises, install Rustlings and run `rustlings dev new PROJECT_NAME`.
This command will, similar to `cargo new PROJECT_NAME`, create a template directory called `PROJECT_NAME` with all what you need to get started.
Read the comments in the generated `info.toml` file to understand its format.
It allows you to set a custom welcome and final message and specify the metadata of every exercise.
## Create an exercise
Here is an example of the metadata of one file:
```toml
[[exercises]]
name = "intro1"
hint = """
To finish this exercise, you need to …
This link might help you …"""
```
After entering this in `info.toml`, create the file `intro1.rs` in the `exercises/` directory.
The exercise needs to contain a `main` function, but it can be empty.
Adding tests is recommended.
Look at the official Rustlings exercises for inspiration.
You can optionally add a solution file `intro1.rs` to the `solutions/` directory.
Now, run `rustlings dev check`.
It will tell you about any issues with your exercises.
For example, it will tell you to run `rustlings dev update` to update the `Cargo.toml` file to include the new exercise `intro1`.
`rustlings dev check` will also run your solutions (if you have any) to make sure that they run successfully.
That's it!
You finished your first exercise 🎉
## Publish
Now, add more exercises and publish them as a Git repository.
Users just have to clone that repository and run `rustlings` in it to start working on your set of exercises just like the official ones.
One difference to the official exercises is that the solution files will not be hidden until the user finishes an exercise.
But you can trust the users to not look at the solution too early 😉
## Share
After publishing your set of exercises, open an issue or a pull request in the official Rustlings repository to link to your project in the README 😃

13
clippy.toml Normal file
View File

@@ -0,0 +1,13 @@
disallowed-types = [
# Inefficient. Use `.queue(…)` instead.
"crossterm::style::Stylize",
"crossterm::style::styled_content::StyledContent",
]
disallowed-methods = [
# We use `ahash` instead of the default hasher.
"std::collections::HashSet::new",
"std::collections::HashSet::with_capacity",
# Inefficient. Use `.queue(…)` instead.
"crossterm::style::style",
]

View File

@@ -1,20 +0,0 @@
Thanks for installing `rustlings`!
## Is this your first time?
Let's make sure you're up to speed:
- You have Rust installed, preferably via `rustup`
- You have `~/.cargo/bin` added to your PATH variable
- You have cloned this repository (https://github.com/rust-lang/rustlings)
- You have installed Rust language support for your editor
- You have locally installed the `rustlings` command by running:
```sh
cargo install --path .
```
If you've done all of this (or even most of it), congrats! You're ready
to start working with Rust.
To get started, run `rustlings verify` in order to get the first exercise.
Make sure to have your editor open!

1
dev-Cargo.toml Symbolic link
View File

@@ -0,0 +1 @@
dev/Cargo.toml

219
dev/Cargo.toml Normal file
View File

@@ -0,0 +1,219 @@
# Don't edit the `bin` list manually! It is updated by `cargo run -- dev update`. This comment line will be stripped in `rustlings init`.
bin = [
{ name = "intro1", path = "../exercises/00_intro/intro1.rs" },
{ name = "intro1_sol", path = "../solutions/00_intro/intro1.rs" },
{ name = "intro2", path = "../exercises/00_intro/intro2.rs" },
{ name = "intro2_sol", path = "../solutions/00_intro/intro2.rs" },
{ name = "variables1", path = "../exercises/01_variables/variables1.rs" },
{ name = "variables1_sol", path = "../solutions/01_variables/variables1.rs" },
{ name = "variables2", path = "../exercises/01_variables/variables2.rs" },
{ name = "variables2_sol", path = "../solutions/01_variables/variables2.rs" },
{ name = "variables3", path = "../exercises/01_variables/variables3.rs" },
{ name = "variables3_sol", path = "../solutions/01_variables/variables3.rs" },
{ name = "variables4", path = "../exercises/01_variables/variables4.rs" },
{ name = "variables4_sol", path = "../solutions/01_variables/variables4.rs" },
{ name = "variables5", path = "../exercises/01_variables/variables5.rs" },
{ name = "variables5_sol", path = "../solutions/01_variables/variables5.rs" },
{ name = "variables6", path = "../exercises/01_variables/variables6.rs" },
{ name = "variables6_sol", path = "../solutions/01_variables/variables6.rs" },
{ name = "functions1", path = "../exercises/02_functions/functions1.rs" },
{ name = "functions1_sol", path = "../solutions/02_functions/functions1.rs" },
{ name = "functions2", path = "../exercises/02_functions/functions2.rs" },
{ name = "functions2_sol", path = "../solutions/02_functions/functions2.rs" },
{ name = "functions3", path = "../exercises/02_functions/functions3.rs" },
{ name = "functions3_sol", path = "../solutions/02_functions/functions3.rs" },
{ name = "functions4", path = "../exercises/02_functions/functions4.rs" },
{ name = "functions4_sol", path = "../solutions/02_functions/functions4.rs" },
{ name = "functions5", path = "../exercises/02_functions/functions5.rs" },
{ name = "functions5_sol", path = "../solutions/02_functions/functions5.rs" },
{ name = "if1", path = "../exercises/03_if/if1.rs" },
{ name = "if1_sol", path = "../solutions/03_if/if1.rs" },
{ name = "if2", path = "../exercises/03_if/if2.rs" },
{ name = "if2_sol", path = "../solutions/03_if/if2.rs" },
{ name = "if3", path = "../exercises/03_if/if3.rs" },
{ name = "if3_sol", path = "../solutions/03_if/if3.rs" },
{ name = "quiz1", path = "../exercises/quizzes/quiz1.rs" },
{ name = "quiz1_sol", path = "../solutions/quizzes/quiz1.rs" },
{ name = "primitive_types1", path = "../exercises/04_primitive_types/primitive_types1.rs" },
{ name = "primitive_types1_sol", path = "../solutions/04_primitive_types/primitive_types1.rs" },
{ name = "primitive_types2", path = "../exercises/04_primitive_types/primitive_types2.rs" },
{ name = "primitive_types2_sol", path = "../solutions/04_primitive_types/primitive_types2.rs" },
{ name = "primitive_types3", path = "../exercises/04_primitive_types/primitive_types3.rs" },
{ name = "primitive_types3_sol", path = "../solutions/04_primitive_types/primitive_types3.rs" },
{ name = "primitive_types4", path = "../exercises/04_primitive_types/primitive_types4.rs" },
{ name = "primitive_types4_sol", path = "../solutions/04_primitive_types/primitive_types4.rs" },
{ name = "primitive_types5", path = "../exercises/04_primitive_types/primitive_types5.rs" },
{ name = "primitive_types5_sol", path = "../solutions/04_primitive_types/primitive_types5.rs" },
{ name = "primitive_types6", path = "../exercises/04_primitive_types/primitive_types6.rs" },
{ name = "primitive_types6_sol", path = "../solutions/04_primitive_types/primitive_types6.rs" },
{ name = "vecs1", path = "../exercises/05_vecs/vecs1.rs" },
{ name = "vecs1_sol", path = "../solutions/05_vecs/vecs1.rs" },
{ name = "vecs2", path = "../exercises/05_vecs/vecs2.rs" },
{ name = "vecs2_sol", path = "../solutions/05_vecs/vecs2.rs" },
{ name = "move_semantics1", path = "../exercises/06_move_semantics/move_semantics1.rs" },
{ name = "move_semantics1_sol", path = "../solutions/06_move_semantics/move_semantics1.rs" },
{ name = "move_semantics2", path = "../exercises/06_move_semantics/move_semantics2.rs" },
{ name = "move_semantics2_sol", path = "../solutions/06_move_semantics/move_semantics2.rs" },
{ name = "move_semantics3", path = "../exercises/06_move_semantics/move_semantics3.rs" },
{ name = "move_semantics3_sol", path = "../solutions/06_move_semantics/move_semantics3.rs" },
{ name = "move_semantics4", path = "../exercises/06_move_semantics/move_semantics4.rs" },
{ name = "move_semantics4_sol", path = "../solutions/06_move_semantics/move_semantics4.rs" },
{ name = "move_semantics5", path = "../exercises/06_move_semantics/move_semantics5.rs" },
{ name = "move_semantics5_sol", path = "../solutions/06_move_semantics/move_semantics5.rs" },
{ name = "structs1", path = "../exercises/07_structs/structs1.rs" },
{ name = "structs1_sol", path = "../solutions/07_structs/structs1.rs" },
{ name = "structs2", path = "../exercises/07_structs/structs2.rs" },
{ name = "structs2_sol", path = "../solutions/07_structs/structs2.rs" },
{ name = "structs3", path = "../exercises/07_structs/structs3.rs" },
{ name = "structs3_sol", path = "../solutions/07_structs/structs3.rs" },
{ name = "enums1", path = "../exercises/08_enums/enums1.rs" },
{ name = "enums1_sol", path = "../solutions/08_enums/enums1.rs" },
{ name = "enums2", path = "../exercises/08_enums/enums2.rs" },
{ name = "enums2_sol", path = "../solutions/08_enums/enums2.rs" },
{ name = "enums3", path = "../exercises/08_enums/enums3.rs" },
{ name = "enums3_sol", path = "../solutions/08_enums/enums3.rs" },
{ name = "strings1", path = "../exercises/09_strings/strings1.rs" },
{ name = "strings1_sol", path = "../solutions/09_strings/strings1.rs" },
{ name = "strings2", path = "../exercises/09_strings/strings2.rs" },
{ name = "strings2_sol", path = "../solutions/09_strings/strings2.rs" },
{ name = "strings3", path = "../exercises/09_strings/strings3.rs" },
{ name = "strings3_sol", path = "../solutions/09_strings/strings3.rs" },
{ name = "strings4", path = "../exercises/09_strings/strings4.rs" },
{ name = "strings4_sol", path = "../solutions/09_strings/strings4.rs" },
{ name = "modules1", path = "../exercises/10_modules/modules1.rs" },
{ name = "modules1_sol", path = "../solutions/10_modules/modules1.rs" },
{ name = "modules2", path = "../exercises/10_modules/modules2.rs" },
{ name = "modules2_sol", path = "../solutions/10_modules/modules2.rs" },
{ name = "modules3", path = "../exercises/10_modules/modules3.rs" },
{ name = "modules3_sol", path = "../solutions/10_modules/modules3.rs" },
{ name = "hashmaps1", path = "../exercises/11_hashmaps/hashmaps1.rs" },
{ name = "hashmaps1_sol", path = "../solutions/11_hashmaps/hashmaps1.rs" },
{ name = "hashmaps2", path = "../exercises/11_hashmaps/hashmaps2.rs" },
{ name = "hashmaps2_sol", path = "../solutions/11_hashmaps/hashmaps2.rs" },
{ name = "hashmaps3", path = "../exercises/11_hashmaps/hashmaps3.rs" },
{ name = "hashmaps3_sol", path = "../solutions/11_hashmaps/hashmaps3.rs" },
{ name = "quiz2", path = "../exercises/quizzes/quiz2.rs" },
{ name = "quiz2_sol", path = "../solutions/quizzes/quiz2.rs" },
{ name = "options1", path = "../exercises/12_options/options1.rs" },
{ name = "options1_sol", path = "../solutions/12_options/options1.rs" },
{ name = "options2", path = "../exercises/12_options/options2.rs" },
{ name = "options2_sol", path = "../solutions/12_options/options2.rs" },
{ name = "options3", path = "../exercises/12_options/options3.rs" },
{ name = "options3_sol", path = "../solutions/12_options/options3.rs" },
{ name = "errors1", path = "../exercises/13_error_handling/errors1.rs" },
{ name = "errors1_sol", path = "../solutions/13_error_handling/errors1.rs" },
{ name = "errors2", path = "../exercises/13_error_handling/errors2.rs" },
{ name = "errors2_sol", path = "../solutions/13_error_handling/errors2.rs" },
{ name = "errors3", path = "../exercises/13_error_handling/errors3.rs" },
{ name = "errors3_sol", path = "../solutions/13_error_handling/errors3.rs" },
{ name = "errors4", path = "../exercises/13_error_handling/errors4.rs" },
{ name = "errors4_sol", path = "../solutions/13_error_handling/errors4.rs" },
{ name = "errors5", path = "../exercises/13_error_handling/errors5.rs" },
{ name = "errors5_sol", path = "../solutions/13_error_handling/errors5.rs" },
{ name = "errors6", path = "../exercises/13_error_handling/errors6.rs" },
{ name = "errors6_sol", path = "../solutions/13_error_handling/errors6.rs" },
{ name = "generics1", path = "../exercises/14_generics/generics1.rs" },
{ name = "generics1_sol", path = "../solutions/14_generics/generics1.rs" },
{ name = "generics2", path = "../exercises/14_generics/generics2.rs" },
{ name = "generics2_sol", path = "../solutions/14_generics/generics2.rs" },
{ name = "traits1", path = "../exercises/15_traits/traits1.rs" },
{ name = "traits1_sol", path = "../solutions/15_traits/traits1.rs" },
{ name = "traits2", path = "../exercises/15_traits/traits2.rs" },
{ name = "traits2_sol", path = "../solutions/15_traits/traits2.rs" },
{ name = "traits3", path = "../exercises/15_traits/traits3.rs" },
{ name = "traits3_sol", path = "../solutions/15_traits/traits3.rs" },
{ name = "traits4", path = "../exercises/15_traits/traits4.rs" },
{ name = "traits4_sol", path = "../solutions/15_traits/traits4.rs" },
{ name = "traits5", path = "../exercises/15_traits/traits5.rs" },
{ name = "traits5_sol", path = "../solutions/15_traits/traits5.rs" },
{ name = "quiz3", path = "../exercises/quizzes/quiz3.rs" },
{ name = "quiz3_sol", path = "../solutions/quizzes/quiz3.rs" },
{ name = "lifetimes1", path = "../exercises/16_lifetimes/lifetimes1.rs" },
{ name = "lifetimes1_sol", path = "../solutions/16_lifetimes/lifetimes1.rs" },
{ name = "lifetimes2", path = "../exercises/16_lifetimes/lifetimes2.rs" },
{ name = "lifetimes2_sol", path = "../solutions/16_lifetimes/lifetimes2.rs" },
{ name = "lifetimes3", path = "../exercises/16_lifetimes/lifetimes3.rs" },
{ name = "lifetimes3_sol", path = "../solutions/16_lifetimes/lifetimes3.rs" },
{ name = "tests1", path = "../exercises/17_tests/tests1.rs" },
{ name = "tests1_sol", path = "../solutions/17_tests/tests1.rs" },
{ name = "tests2", path = "../exercises/17_tests/tests2.rs" },
{ name = "tests2_sol", path = "../solutions/17_tests/tests2.rs" },
{ name = "tests3", path = "../exercises/17_tests/tests3.rs" },
{ name = "tests3_sol", path = "../solutions/17_tests/tests3.rs" },
{ name = "iterators1", path = "../exercises/18_iterators/iterators1.rs" },
{ name = "iterators1_sol", path = "../solutions/18_iterators/iterators1.rs" },
{ name = "iterators2", path = "../exercises/18_iterators/iterators2.rs" },
{ name = "iterators2_sol", path = "../solutions/18_iterators/iterators2.rs" },
{ name = "iterators3", path = "../exercises/18_iterators/iterators3.rs" },
{ name = "iterators3_sol", path = "../solutions/18_iterators/iterators3.rs" },
{ name = "iterators4", path = "../exercises/18_iterators/iterators4.rs" },
{ name = "iterators4_sol", path = "../solutions/18_iterators/iterators4.rs" },
{ name = "iterators5", path = "../exercises/18_iterators/iterators5.rs" },
{ name = "iterators5_sol", path = "../solutions/18_iterators/iterators5.rs" },
{ name = "box1", path = "../exercises/19_smart_pointers/box1.rs" },
{ name = "box1_sol", path = "../solutions/19_smart_pointers/box1.rs" },
{ name = "rc1", path = "../exercises/19_smart_pointers/rc1.rs" },
{ name = "rc1_sol", path = "../solutions/19_smart_pointers/rc1.rs" },
{ name = "arc1", path = "../exercises/19_smart_pointers/arc1.rs" },
{ name = "arc1_sol", path = "../solutions/19_smart_pointers/arc1.rs" },
{ name = "cow1", path = "../exercises/19_smart_pointers/cow1.rs" },
{ name = "cow1_sol", path = "../solutions/19_smart_pointers/cow1.rs" },
{ name = "threads1", path = "../exercises/20_threads/threads1.rs" },
{ name = "threads1_sol", path = "../solutions/20_threads/threads1.rs" },
{ name = "threads2", path = "../exercises/20_threads/threads2.rs" },
{ name = "threads2_sol", path = "../solutions/20_threads/threads2.rs" },
{ name = "threads3", path = "../exercises/20_threads/threads3.rs" },
{ name = "threads3_sol", path = "../solutions/20_threads/threads3.rs" },
{ name = "macros1", path = "../exercises/21_macros/macros1.rs" },
{ name = "macros1_sol", path = "../solutions/21_macros/macros1.rs" },
{ name = "macros2", path = "../exercises/21_macros/macros2.rs" },
{ name = "macros2_sol", path = "../solutions/21_macros/macros2.rs" },
{ name = "macros3", path = "../exercises/21_macros/macros3.rs" },
{ name = "macros3_sol", path = "../solutions/21_macros/macros3.rs" },
{ name = "macros4", path = "../exercises/21_macros/macros4.rs" },
{ name = "macros4_sol", path = "../solutions/21_macros/macros4.rs" },
{ name = "clippy1", path = "../exercises/22_clippy/clippy1.rs" },
{ name = "clippy1_sol", path = "../solutions/22_clippy/clippy1.rs" },
{ name = "clippy2", path = "../exercises/22_clippy/clippy2.rs" },
{ name = "clippy2_sol", path = "../solutions/22_clippy/clippy2.rs" },
{ name = "clippy3", path = "../exercises/22_clippy/clippy3.rs" },
{ name = "clippy3_sol", path = "../solutions/22_clippy/clippy3.rs" },
{ name = "using_as", path = "../exercises/23_conversions/using_as.rs" },
{ name = "using_as_sol", path = "../solutions/23_conversions/using_as.rs" },
{ name = "from_into", path = "../exercises/23_conversions/from_into.rs" },
{ name = "from_into_sol", path = "../solutions/23_conversions/from_into.rs" },
{ name = "from_str", path = "../exercises/23_conversions/from_str.rs" },
{ name = "from_str_sol", path = "../solutions/23_conversions/from_str.rs" },
{ name = "try_from_into", path = "../exercises/23_conversions/try_from_into.rs" },
{ name = "try_from_into_sol", path = "../solutions/23_conversions/try_from_into.rs" },
{ name = "as_ref_mut", path = "../exercises/23_conversions/as_ref_mut.rs" },
{ name = "as_ref_mut_sol", path = "../solutions/23_conversions/as_ref_mut.rs" },
]
[package]
name = "exercises"
edition = "2021"
# Don't publish the exercises on crates.io!
publish = false
[profile.release]
panic = "abort"
[profile.dev]
panic = "abort"
[lints.rust]
# You shouldn't write unsafe code in Rustlings
unsafe_code = "forbid"
# You don't need unstable features in Rustlings and shouldn't rely on them while learning Rust
unstable_features = "forbid"
[lints.clippy]
# You forgot a `todo!()`
todo = "forbid"
# This can only happen by mistake in Rustlings
empty_loop = "forbid"
# No infinite loops are needed in Rustlings
infinite_loop = "deny"
# You shouldn't leak memory while still learning Rust
mem_forget = "deny"

1
dev/rustlings-repo.txt Normal file
View File

@@ -0,0 +1 @@
This file is used to check if the user tries to run Rustlings in the repository (the method before version 6)

View File

@@ -0,0 +1,8 @@
# Intro
Rust uses the `print!` and `println!` macros to print text to the console.
## Further information
- [Hello World](https://doc.rust-lang.org/rust-by-example/hello.html)
- [Formatted print](https://doc.rust-lang.org/rust-by-example/hello/print.html)

View File

@@ -0,0 +1,24 @@
// TODO: We sometimes encourage you to keep trying things on a given exercise
// even after you already figured it out. If you got everything working and feel
// ready for the next exercise, enter `n` in the terminal.
//
// The exercise file will be reloaded when you change one of the lines below!
// Try adding a new `println!` and check the updated output in the terminal.
fn main() {
println!(r#" Welcome to... "#);
println!(r#" _ _ _ "#);
println!(r#" _ __ _ _ ___| |_| (_)_ __ __ _ ___ "#);
println!(r#" | '__| | | / __| __| | | '_ \ / _` / __| "#);
println!(r#" | | | |_| \__ \ |_| | | | | | (_| \__ \ "#);
println!(r#" |_| \__,_|___/\__|_|_|_| |_|\__, |___/ "#);
println!(r#" |___/ "#);
println!();
println!("This exercise compiles successfully. The remaining exercises contain a compiler");
println!("or logic error. The central concept behind Rustlings is to fix these errors and");
println!("solve the exercises. Good luck!");
println!();
println!("The file of this exercise is `exercises/00_intro/intro1.rs`. Have a look!");
println!("The current exercise path will be always shown under the progress bar.");
println!("You can click on the path to open the exercise file in your editor.");
}

View File

@@ -0,0 +1,4 @@
fn main() {
// TODO: Fix the code to print "Hello world!".
printline!("Hello world!");
}

View File

@@ -0,0 +1,9 @@
# Variables
In Rust, variables are immutable by default.
When a variable is immutable, once a value is bound to a name, you can’t change that value.
You can make them mutable by adding `mut` in front of the variable name.
## Further information
- [Variables and Mutability](https://doc.rust-lang.org/book/ch03-01-variables-and-mutability.html)

View File

@@ -0,0 +1,6 @@
fn main() {
// TODO: Add the missing keyword.
x = 5;
println!("x has the value {x}");
}

View File

@@ -0,0 +1,10 @@
fn main() {
// TODO: Change the line below to fix the compiler error.
let x;
if x == 10 {
println!("x is ten!");
} else {
println!("x is not ten!");
}
}

View File

@@ -0,0 +1,6 @@
fn main() {
// TODO: Change the line below to fix the compiler error.
let x: i32;
println!("Number {x}");
}

View File

@@ -0,0 +1,8 @@
// TODO: Fix the compiler error.
fn main() {
let x = 3;
println!("Number {x}");
x = 5; // Don't change this line
println!("Number {x}");
}

View File

@@ -0,0 +1,8 @@
fn main() {
let number = "T-H-R-E-E"; // Don't change this line
println!("Spell a number: {}", number);
// TODO: Fix the compiler error by changing the line below without renaming the variable.
number = 3;
println!("Number plus two is: {}", number + 2);
}

View File

@@ -0,0 +1,6 @@
// TODO: Change the line below to fix the compiler error.
const NUMBER = 3;
fn main() {
println!("Number: {NUMBER}");
}

View File

@@ -0,0 +1,8 @@
# Functions
Here, you'll learn how to write functions and how the Rust compiler can help you debug errors even
in more complex code.
## Further information
- [How Functions Work](https://doc.rust-lang.org/book/ch03-03-how-functions-work.html)

View File

@@ -0,0 +1,5 @@
// TODO: Add some function with the name `call_me` without arguments or a return value.
fn main() {
call_me(); // Don't change this line
}

View File

@@ -0,0 +1,10 @@
// TODO: Add the missing type of the argument `num` after the colon `:`.
fn call_me(num:) {
for i in 0..num {
println!("Ring! Call number {}", i + 1);
}
}
fn main() {
call_me(3);
}

View File

@@ -0,0 +1,10 @@
fn call_me(num: u8) {
for i in 0..num {
println!("Ring! Call number {}", i + 1);
}
}
fn main() {
// TODO: Fix the function call.
call_me();
}

View File

@@ -0,0 +1,22 @@
// This store is having a sale where if the price is an even number, you get 10
// Rustbucks off, but if it's an odd number, it's 3 Rustbucks off.
// Don't worry about the function bodies themselves, we are only interested in
// the signatures for now.
fn is_even(num: i64) -> bool {
num % 2 == 0
}
// TODO: Fix the function signature.
fn sale_price(price: i64) -> {
if is_even(price) {
price - 10
} else {
price - 3
}
}
fn main() {
let original_price = 51;
println!("Your sale price is {}", sale_price(original_price));
}

View File

@@ -0,0 +1,9 @@
// TODO: Fix the function body without changing the signature.
fn square(num: i32) -> i32 {
num * num;
}
fn main() {
let answer = square(3);
println!("The square of 3 is {answer}");
}

View File

@@ -0,0 +1,7 @@
# If
`if`, the most basic (but still surprisingly versatile!) type of control flow, is what you'll learn here.
## Further information
- [Control Flow - if expressions](https://doc.rust-lang.org/book/ch03-05-control-flow.html#if-expressions)

32
exercises/03_if/if1.rs Normal file
View File

@@ -0,0 +1,32 @@
fn bigger(a: i32, b: i32) -> i32 {
// TODO: Complete this function to return the bigger number!
// If both numbers are equal, any of them can be returned.
// Do not use:
// - another function call
// - additional variables
}
fn main() {
// You can optionally experiment here.
}
// Don't mind this for now :)
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn ten_is_bigger_than_eight() {
assert_eq!(10, bigger(10, 8));
}
#[test]
fn fortytwo_is_bigger_than_thirtytwo() {
assert_eq!(42, bigger(32, 42));
}
#[test]
fn equal_numbers() {
assert_eq!(42, bigger(42, 42));
}
}

35
exercises/03_if/if2.rs Normal file
View File

@@ -0,0 +1,35 @@
// TODO: Fix the compiler error on this function.
fn foo_if_fizz(fizzish: &str) -> &str {
if fizzish == "fizz" {
"foo"
} else {
1
}
}
fn main() {
// You can optionally experiment here.
}
// TODO: Read the tests to understand the desired behavior.
// Make all tests pass without changing them.
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn foo_for_fizz() {
// This means that calling `foo_if_fizz` with the argument "fizz" should return "foo".
assert_eq!(foo_if_fizz("fizz"), "foo");
}
#[test]
fn bar_for_fuzz() {
assert_eq!(foo_if_fizz("fuzz"), "bar");
}
#[test]
fn default_to_baz() {
assert_eq!(foo_if_fizz("literally anything"), "baz");
}
}

53
exercises/03_if/if3.rs Normal file
View File

@@ -0,0 +1,53 @@
fn animal_habitat(animal: &str) -> &str {
// TODO: Fix the compiler error in the statement below.
let identifier = if animal == "crab" {
1
} else if animal == "gopher" {
2.0
} else if animal == "snake" {
3
} else {
"Unknown"
};
// Don't change the expression below!
if identifier == 1 {
"Beach"
} else if identifier == 2 {
"Burrow"
} else if identifier == 3 {
"Desert"
} else {
"Unknown"
}
}
fn main() {
// You can optionally experiment here.
}
// Don't change the tests!
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn gopher_lives_in_burrow() {
assert_eq!(animal_habitat("gopher"), "Burrow")
}
#[test]
fn snake_lives_in_desert() {
assert_eq!(animal_habitat("snake"), "Desert")
}
#[test]
fn crab_lives_on_beach() {
assert_eq!(animal_habitat("crab"), "Beach")
}
#[test]
fn unknown_animal() {
assert_eq!(animal_habitat("dinosaur"), "Unknown")
}
}

View File

@@ -0,0 +1,9 @@
# Primitive Types
Rust has a couple of basic types that are directly implemented into the
compiler. In this section, we'll go through the most important ones.
## Further information
- [Data Types](https://doc.rust-lang.org/book/ch03-02-data-types.html)
- [The Slice Type](https://doc.rust-lang.org/book/ch04-03-slices.html)

View File

@@ -0,0 +1,15 @@
// Booleans (`bool`)
fn main() {
let is_morning = true;
if is_morning {
println!("Good morning!");
}
// TODO: Define a boolean variable with the name `is_evening` before the `if` statement below.
// The value of the variable should be the negation (opposite) of `is_morning`.
// let …
if is_evening {
println!("Good evening!");
}
}

View File

@@ -0,0 +1,28 @@
// Characters (`char`)
fn main() {
// Note the _single_ quotes, these are different from the double quotes
// you've been seeing around.
let my_first_initial = 'C';
if my_first_initial.is_alphabetic() {
println!("Alphabetical!");
} else if my_first_initial.is_numeric() {
println!("Numerical!");
} else {
println!("Neither alphabetic nor numeric!");
}
// TODO: Analogous to the example before, declare a variable called `your_character`
// below with your favorite character.
// Try a letter, try a digit (in single quotes), try a special character, try a character
// from a different language than your own, try an emoji 😉
// let your_character = '';
if your_character.is_alphabetic() {
println!("Alphabetical!");
} else if your_character.is_numeric() {
println!("Numerical!");
} else {
println!("Neither alphabetic nor numeric!");
}
}

View File

@@ -0,0 +1,11 @@
fn main() {
// TODO: Create an array called `a` with at least 100 elements in it.
// let a = ???
if a.len() >= 100 {
println!("Wow, that's a big array!");
} else {
println!("Meh, I eat arrays like that for breakfast.");
panic!("Array not big enough, more elements needed");
}
}

View File

@@ -0,0 +1,16 @@
fn main() {
// You can optionally experiment here.
}
#[cfg(test)]
mod tests {
#[test]
fn slice_out_of_array() {
let a = [1, 2, 3, 4, 5];
// TODO: Get a slice called `nice_slice` out of the array `a` so that the test passes.
// let nice_slice = ???
assert_eq!([2, 3, 4], nice_slice);
}
}

View File

@@ -0,0 +1,8 @@
fn main() {
let cat = ("Furry McFurson", 3.5);
// TODO: Destructure the `cat` tuple in one statement so that the println works.
// let /* your pattern here */ = cat;
println!("{name} is {age} years old");
}

View File

@@ -0,0 +1,17 @@
fn main() {
// You can optionally experiment here.
}
#[cfg(test)]
mod tests {
#[test]
fn indexing_tuple() {
let numbers = (1, 2, 3);
// TODO: Use a tuple index to access the second element of `numbers`
// and assign it to a variable called `second`.
// let second = ???;
assert_eq!(second, 2, "This is not the 2nd number in the tuple!");
}
}

View File

@@ -0,0 +1,17 @@
# Vectors
Vectors are one of the most-used Rust data structures. In other programming
languages, they'd simply be called Arrays, but since Rust operates on a
bit of a lower level, an array in Rust is stored on the stack (meaning it
can't grow or shrink, and the size needs to be known at compile time),
and a Vector is stored in the heap (where these restrictions do not apply).
Vectors are a bit of a later chapter in the book, but we think that they're
useful enough to talk about them a bit earlier. We shall be talking about
the other useful data structure, hash maps, later.
## Further information
- [Storing Lists of Values with Vectors](https://doc.rust-lang.org/book/ch08-01-vectors.html)
- [`iter_mut`](https://doc.rust-lang.org/std/primitive.slice.html#method.iter_mut)
- [`map`](https://doc.rust-lang.org/std/iter/trait.Iterator.html#method.map)

View File

@@ -0,0 +1,24 @@
fn array_and_vec() -> ([i32; 4], Vec<i32>) {
let a = [10, 20, 30, 40]; // Array
// TODO: Create a vector called `v` which contains the exact same elements as in the array `a`.
// Use the vector macro.
// let v = ???;
(a, v)
}
fn main() {
// You can optionally experiment here.
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_array_and_vec_similarity() {
let (a, v) = array_and_vec();
assert_eq!(a, *v);
}
}

View File

@@ -0,0 +1,60 @@
fn vec_loop(input: &[i32]) -> Vec<i32> {
let mut output = Vec::new();
for element in input {
// TODO: Multiply each element in the `input` slice by 2 and push it to
// the `output` vector.
}
output
}
fn vec_map_example(input: &[i32]) -> Vec<i32> {
// An example of collecting a vector after mapping.
// We map each element of the `input` slice to its value plus 1.
// If the input is `[1, 2, 3]`, the output is `[2, 3, 4]`.
input.iter().map(|element| element + 1).collect()
}
fn vec_map(input: &[i32]) -> Vec<i32> {
// TODO: Here, we also want to multiply each element in the `input` slice
// by 2, but with iterator mapping instead of manually pushing into an empty
// vector.
// See the example in the function `vec_map_example` above.
input
.iter()
.map(|element| {
// ???
})
.collect()
}
fn main() {
// You can optionally experiment here.
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_vec_loop() {
let input = [2, 4, 6, 8, 10];
let ans = vec_loop(&input);
assert_eq!(ans, [4, 8, 12, 16, 20]);
}
#[test]
fn test_vec_map_example() {
let input = [1, 2, 3];
let ans = vec_map_example(&input);
assert_eq!(ans, [2, 3, 4]);
}
#[test]
fn test_vec_map() {
let input = [2, 4, 6, 8, 10];
let ans = vec_map(&input);
assert_eq!(ans, [4, 8, 12, 16, 20]);
}
}

View File

@@ -1,10 +1,10 @@
### Move Semantics
# Move Semantics
These exercises are adapted from [pnkfelix](https://github.com/pnkfelix)'s [Rust Tutorial](https://pnkfelix.github.io/rust-examples-icfp2014/) -- Thank you Felix!!!
#### Book Sections
## Further information
For this section, the book links are especially important.
- [Ownership](https://doc.rust-lang.org/stable/book/ch04-01-what-is-ownership.html)
- [Reference and borrowing](https://doc.rust-lang.org/stable/book/ch04-02-references-and-borrowing.html)
- [Ownership](https://doc.rust-lang.org/book/ch04-01-what-is-ownership.html)
- [Reference and borrowing](https://doc.rust-lang.org/book/ch04-02-references-and-borrowing.html)

View File

@@ -0,0 +1,24 @@
// TODO: Fix the compiler error in this function.
fn fill_vec(vec: Vec<i32>) -> Vec<i32> {
let vec = vec;
vec.push(88);
vec
}
fn main() {
// You can optionally experiment here.
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn move_semantics1() {
let vec0 = vec![22, 44, 66];
let vec1 = fill_vec(vec0);
assert_eq!(vec1, vec![22, 44, 66, 88]);
}
}

View File

@@ -0,0 +1,28 @@
fn fill_vec(vec: Vec<i32>) -> Vec<i32> {
let mut vec = vec;
vec.push(88);
vec
}
fn main() {
// You can optionally experiment here.
}
#[cfg(test)]
mod tests {
use super::*;
// TODO: Make both vectors `vec0` and `vec1` accessible at the same time to
// fix the compiler error in the test.
#[test]
fn move_semantics2() {
let vec0 = vec![22, 44, 66];
let vec1 = fill_vec(vec0);
assert_eq!(vec0, [22, 44, 66]);
assert_eq!(vec1, [22, 44, 66, 88]);
}
}

View File

@@ -0,0 +1,22 @@
// TODO: Fix the compiler error in the function without adding any new line.
fn fill_vec(vec: Vec<i32>) -> Vec<i32> {
vec.push(88);
vec
}
fn main() {
// You can optionally experiment here.
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn move_semantics3() {
let vec0 = vec![22, 44, 66];
let vec1 = fill_vec(vec0);
assert_eq!(vec1, [22, 44, 66, 88]);
}
}

View File

@@ -0,0 +1,18 @@
fn main() {
// You can optionally experiment here.
}
#[cfg(test)]
mod tests {
// TODO: Fix the compiler errors only by reordering the lines in the test.
// Don't add, change or remove any line.
#[test]
fn move_semantics4() {
let mut x = Vec::new();
let y = &mut x;
let z = &mut x;
y.push(42);
z.push(13);
assert_eq!(x, [42, 13]);
}
}

View File

@@ -0,0 +1,24 @@
#![allow(clippy::ptr_arg)]
// TODO: Fix the compiler errors without changing anything except adding or
// removing references (the character `&`).
// Shouldn't take ownership
fn get_char(data: String) -> char {
data.chars().last().unwrap()
}
// Should take ownership
fn string_uppercase(mut data: &String) {
data = data.to_uppercase();
println!("{data}");
}
fn main() {
let data = "Rust is great!".to_string();
get_char(data);
string_uppercase(&data);
}

View File

@@ -0,0 +1,8 @@
# Structs
Rust has three struct types: a classic C struct, a tuple struct, and a unit struct.
## Further information
- [Structures](https://doc.rust-lang.org/book/ch05-01-defining-structs.html)
- [Method Syntax](https://doc.rust-lang.org/book/ch05-03-method-syntax.html)

View File

@@ -0,0 +1,47 @@
struct ColorRegularStruct {
// TODO: Add the fields that the test `regular_structs` expects.
// What types should the fields have? What are the minimum and maximum values for RGB colors?
}
struct ColorTupleStruct(/* TODO: Add the fields that the test `tuple_structs` expects */);
#[derive(Debug)]
struct UnitStruct;
fn main() {
// You can optionally experiment here.
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn regular_structs() {
// TODO: Instantiate a regular struct.
// let green =
assert_eq!(green.red, 0);
assert_eq!(green.green, 255);
assert_eq!(green.blue, 0);
}
#[test]
fn tuple_structs() {
// TODO: Instantiate a tuple struct.
// let green =
assert_eq!(green.0, 0);
assert_eq!(green.1, 255);
assert_eq!(green.2, 0);
}
#[test]
fn unit_structs() {
// TODO: Instantiate a unit struct.
// let unit_struct =
let message = format!("{unit_struct:?}s are fun!");
assert_eq!(message, "UnitStructs are fun!");
}
}

View File

@@ -0,0 +1,47 @@
#[derive(Debug)]
struct Order {
name: String,
year: u32,
made_by_phone: bool,
made_by_mobile: bool,
made_by_email: bool,
item_number: u32,
count: u32,
}
fn create_order_template() -> Order {
Order {
name: String::from("Bob"),
year: 2019,
made_by_phone: false,
made_by_mobile: false,
made_by_email: true,
item_number: 123,
count: 0,
}
}
fn main() {
// You can optionally experiment here.
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn your_order() {
let order_template = create_order_template();
// TODO: Create your own order using the update syntax and template above!
// let your_order =
assert_eq!(your_order.name, "Hacker in Rust");
assert_eq!(your_order.year, order_template.year);
assert_eq!(your_order.made_by_phone, order_template.made_by_phone);
assert_eq!(your_order.made_by_mobile, order_template.made_by_mobile);
assert_eq!(your_order.made_by_email, order_template.made_by_email);
assert_eq!(your_order.item_number, order_template.item_number);
assert_eq!(your_order.count, 1);
}
}

View File

@@ -0,0 +1,87 @@
// Structs contain data, but can also have logic. In this exercise, we have
// defined the `Package` struct, and we want to test some logic attached to it.
#[derive(Debug)]
struct Package {
sender_country: String,
recipient_country: String,
weight_in_grams: u32,
}
impl Package {
fn new(sender_country: String, recipient_country: String, weight_in_grams: u32) -> Self {
if weight_in_grams < 10 {
// This isn't how you should handle errors in Rust, but we will
// learn about error handling later.
panic!("Can't ship a package with weight below 10 grams");
}
Self {
sender_country,
recipient_country,
weight_in_grams,
}
}
// TODO: Add the correct return type to the function signature.
fn is_international(&self) {
// TODO: Read the tests that use this method to find out when a package
// is considered international.
}
// TODO: Add the correct return type to the function signature.
fn get_fees(&self, cents_per_gram: u32) {
// TODO: Calculate the package's fees.
}
}
fn main() {
// You can optionally experiment here.
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
#[should_panic]
fn fail_creating_weightless_package() {
let sender_country = String::from("Spain");
let recipient_country = String::from("Austria");
Package::new(sender_country, recipient_country, 5);
}
#[test]
fn create_international_package() {
let sender_country = String::from("Spain");
let recipient_country = String::from("Russia");
let package = Package::new(sender_country, recipient_country, 1200);
assert!(package.is_international());
}
#[test]
fn create_local_package() {
let sender_country = String::from("Canada");
let recipient_country = sender_country.clone();
let package = Package::new(sender_country, recipient_country, 1200);
assert!(!package.is_international());
}
#[test]
fn calculate_transport_fees() {
let sender_country = String::from("Spain");
let recipient_country = String::from("Spain");
let cents_per_gram = 3;
let package = Package::new(sender_country, recipient_country, 1500);
assert_eq!(package.get_fees(cents_per_gram), 4500);
assert_eq!(package.get_fees(cents_per_gram * 2), 9000);
}
}

View File

@@ -0,0 +1,10 @@
# Enums
Rust allows you to define types called "enums" which enumerate possible values.
Enums are a feature in many languages, but their capabilities differ in each language. Rust’s enums are most similar to algebraic data types in functional languages, such as F#, OCaml, and Haskell.
Useful in combination with enums is Rust's "pattern matching" facility, which makes it easy to run different code for different values of an enumeration.
## Further information
- [Enums](https://doc.rust-lang.org/book/ch06-00-enums.html)
- [Pattern syntax](https://doc.rust-lang.org/book/ch18-03-pattern-syntax.html)

View File

@@ -0,0 +1,12 @@
#[derive(Debug)]
enum Message {
// TODO: Define a few types of messages as used below.
}
fn main() {
println!("{:?}", Message::Resize);
println!("{:?}", Message::Move);
println!("{:?}", Message::Echo);
println!("{:?}", Message::ChangeColor);
println!("{:?}", Message::Quit);
}

View File

@@ -0,0 +1,35 @@
#![allow(dead_code)]
#[derive(Debug)]
struct Point {
x: u64,
y: u64,
}
#[derive(Debug)]
enum Message {
// TODO: Define the different variants used below.
}
impl Message {
fn call(&self) {
println!("{self:?}");
}
}
fn main() {
let messages = [
Message::Resize {
width: 10,
height: 30,
},
Message::Move(Point { x: 10, y: 15 }),
Message::Echo(String::from("hello world")),
Message::ChangeColor(200, 255, 255),
Message::Quit,
];
for message in &messages {
message.call();
}
}

View File

@@ -0,0 +1,84 @@
struct Point {
x: u64,
y: u64,
}
enum Message {
// TODO: Implement the message variant types based on their usage below.
}
struct State {
width: u64,
height: u64,
position: Point,
message: String,
// RGB color composed of red, green and blue.
color: (u8, u8, u8),
quit: bool,
}
impl State {
fn resize(&mut self, width: u64, height: u64) {
self.width = width;
self.height = height;
}
fn move_position(&mut self, point: Point) {
self.position = point;
}
fn echo(&mut self, s: String) {
self.message = s;
}
fn change_color(&mut self, red: u8, green: u8, blue: u8) {
self.color = (red, green, blue);
}
fn quit(&mut self) {
self.quit = true;
}
fn process(&mut self, message: Message) {
// TODO: Create a match expression to process the different message
// variants using the methods defined above.
}
}
fn main() {
// You can optionally experiment here.
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_match_message_call() {
let mut state = State {
width: 0,
height: 0,
position: Point { x: 0, y: 0 },
message: String::from("hello world"),
color: (0, 0, 0),
quit: false,
};
state.process(Message::Resize {
width: 10,
height: 30,
});
state.process(Message::Move(Point { x: 10, y: 15 }));
state.process(Message::Echo(String::from("Hello world!")));
state.process(Message::ChangeColor(255, 0, 255));
state.process(Message::Quit);
assert_eq!(state.width, 10);
assert_eq!(state.height, 30);
assert_eq!(state.position.x, 10);
assert_eq!(state.position.y, 15);
assert_eq!(state.message, "Hello world!");
assert_eq!(state.color, (255, 0, 255));
assert!(state.quit);
}
}

View File

@@ -1,9 +1,9 @@
### Strings
# Strings
Rust has two string types, a string slice (`&str`) and an owned string (`String`).
We're not going to dictate when you should use which one, but we'll show you how
to identify and create them, as well as use them.
#### Book Sections
## Further information
- [Strings](https://doc.rust-lang.org/stable/book/ch08-02-strings.html)
- [Strings](https://doc.rust-lang.org/book/ch08-02-strings.html)

View File

@@ -0,0 +1,9 @@
// TODO: Fix the compiler error without changing the function signature.
fn current_favorite_color() -> String {
"blue"
}
fn main() {
let answer = current_favorite_color();
println!("My current favorite color is {answer}");
}

View File

@@ -0,0 +1,14 @@
// TODO: Fix the compiler error in the `main` function without changing this function.
fn is_a_color_word(attempt: &str) -> bool {
attempt == "green" || attempt == "blue" || attempt == "red"
}
fn main() {
let word = String::from("green"); // Don't change this line.
if is_a_color_word(word) {
println!("That is a color word I know!");
} else {
println!("That is not a color word I know.");
}
}

View File

@@ -0,0 +1,45 @@
fn trim_me(input: &str) -> &str {
// TODO: Remove whitespace from both ends of a string.
}
fn compose_me(input: &str) -> String {
// TODO: Add " world!" to the string! There are multiple ways to do this.
}
fn replace_me(input: &str) -> String {
// TODO: Replace "cars" in the string with "balloons".
}
fn main() {
// You can optionally experiment here.
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn trim_a_string() {
assert_eq!(trim_me("Hello! "), "Hello!");
assert_eq!(trim_me(" What's up!"), "What's up!");
assert_eq!(trim_me(" Hola! "), "Hola!");
}
#[test]
fn compose_a_string() {
assert_eq!(compose_me("Hello"), "Hello world!");
assert_eq!(compose_me("Goodbye"), "Goodbye world!");
}
#[test]
fn replace_a_string() {
assert_eq!(
replace_me("I think cars are cool"),
"I think balloons are cool",
);
assert_eq!(
replace_me("I love to look at cars"),
"I love to look at balloons",
);
}
}

View File

@@ -0,0 +1,37 @@
// Calls of this function should be replaced with calls of `string_slice` or `string`.
fn placeholder() {}
fn string_slice(arg: &str) {
println!("{arg}");
}
fn string(arg: String) {
println!("{arg}");
}
// TODO: Here are a bunch of values - some are `String`, some are `&str`.
// Your task is to replace `placeholder(…)` with either `string_slice(…)`
// or `string(…)` depending on what you think each value is.
fn main() {
placeholder("blue");
placeholder("red".to_string());
placeholder(String::from("hi"));
placeholder("rust is fun!".to_owned());
placeholder("nice weather".into());
placeholder(format!("Interpolation {}", "Station"));
// WARNING: This is byte indexing, not character indexing.
// Character indexing can be done using `s.chars().nth(INDEX)`.
placeholder(&String::from("abc")[0..1]);
placeholder(" hello there ".trim());
placeholder("Happy Monday!".replace("Mon", "Tues"));
placeholder("mY sHiFt KeY iS sTiCkY".to_lowercase());
}

View File

@@ -0,0 +1,7 @@
# Modules
In this section we'll give you an introduction to Rust's module system.
## Further information
- [The Module System](https://doc.rust-lang.org/book/ch07-00-managing-growing-projects-with-packages-crates-and-modules.html)

View File

@@ -0,0 +1,16 @@
// TODO: Fix the compiler error about calling a private function.
mod sausage_factory {
// Don't let anybody outside of this module see this!
fn get_secret_recipe() -> String {
String::from("Ginger")
}
fn make_sausage() {
get_secret_recipe();
println!("sausage!");
}
}
fn main() {
sausage_factory::make_sausage();
}

View File

@@ -0,0 +1,27 @@
// You can bring module paths into scopes and provide new names for them with
// the `use` and `as` keywords.
#[allow(dead_code)]
mod delicious_snacks {
// TODO: Add the following two `use` statements after fixing them.
// use self::fruits::PEAR as ???;
// use self::veggies::CUCUMBER as ???;
mod fruits {
pub const PEAR: &str = "Pear";
pub const APPLE: &str = "Apple";
}
mod veggies {
pub const CUCUMBER: &str = "Cucumber";
pub const CARROT: &str = "Carrot";
}
}
fn main() {
println!(
"favorite snacks: {} and {}",
delicious_snacks::fruit,
delicious_snacks::veggie,
);
}

View File

@@ -0,0 +1,13 @@
// You can use the `use` keyword to bring module paths from modules from
// anywhere and especially from the standard library into your scope.
// TODO: Bring `SystemTime` and `UNIX_EPOCH` from the `std::time` module into
// your scope. Bonus style points if you can do it with one line!
// use ???;
fn main() {
match SystemTime::now().duration_since(UNIX_EPOCH) {
Ok(n) => println!("1970-01-01 00:00:00 UTC was {} seconds ago!", n.as_secs()),
Err(_) => panic!("SystemTime before UNIX EPOCH!"),
}
}

View File

@@ -0,0 +1,12 @@
# Hashmaps
A *hash map* allows you to associate a value with a particular key.
You may also know this by the names [*unordered map* in C++](https://en.cppreference.com/w/cpp/container/unordered_map),
[*dictionary* in Python](https://docs.python.org/3/tutorial/datastructures.html#dictionaries) or an *associative array* in other languages.
This is the other data structure that we've been talking about before, when
talking about Vecs.
## Further information
- [Storing Keys with Associated Values in Hash Maps](https://doc.rust-lang.org/book/ch08-03-hash-maps.html)

View File

@@ -0,0 +1,40 @@
// A basket of fruits in the form of a hash map needs to be defined. The key
// represents the name of the fruit and the value represents how many of that
// particular fruit is in the basket. You have to put at least 3 different
// types of fruits (e.g. apple, banana, mango) in the basket and the total count
// of all the fruits should be at least 5.
use std::collections::HashMap;
fn fruit_basket() -> HashMap<String, u32> {
// TODO: Declare the hash map.
// let mut basket =
// Two bananas are already given for you :)
basket.insert(String::from("banana"), 2);
// TODO: Put more fruits in your basket.
basket
}
fn main() {
// You can optionally experiment here.
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn at_least_three_types_of_fruits() {
let basket = fruit_basket();
assert!(basket.len() >= 3);
}
#[test]
fn at_least_five_fruits() {
let basket = fruit_basket();
assert!(basket.values().sum::<u32>() >= 5);
}
}

View File

@@ -0,0 +1,97 @@
// We're collecting different fruits to bake a delicious fruit cake. For this,
// we have a basket, which we'll represent in the form of a hash map. The key
// represents the name of each fruit we collect and the value represents how
// many of that particular fruit we have collected. Three types of fruits -
// Apple (4), Mango (2) and Lychee (5) are already in the basket hash map. You
// must add fruit to the basket so that there is at least one of each kind and
// more than 11 in total - we have a lot of mouths to feed. You are not allowed
// to insert any more of the fruits that are already in the basket (Apple,
// Mango, and Lychee).
use std::collections::HashMap;
#[derive(Hash, PartialEq, Eq, Debug)]
enum Fruit {
Apple,
Banana,
Mango,
Lychee,
Pineapple,
}
fn fruit_basket(basket: &mut HashMap<Fruit, u32>) {
let fruit_kinds = [
Fruit::Apple,
Fruit::Banana,
Fruit::Mango,
Fruit::Lychee,
Fruit::Pineapple,
];
for fruit in fruit_kinds {
// TODO: Insert new fruits if they are not already present in the
// basket. Note that you are not allowed to put any type of fruit that's
// already present!
}
}
fn main() {
// You can optionally experiment here.
}
#[cfg(test)]
mod tests {
use super::*;
// Don't modify this function!
fn get_fruit_basket() -> HashMap<Fruit, u32> {
let content = [(Fruit::Apple, 4), (Fruit::Mango, 2), (Fruit::Lychee, 5)];
HashMap::from_iter(content)
}
#[test]
fn test_given_fruits_are_not_modified() {
let mut basket = get_fruit_basket();
fruit_basket(&mut basket);
assert_eq!(*basket.get(&Fruit::Apple).unwrap(), 4);
assert_eq!(*basket.get(&Fruit::Mango).unwrap(), 2);
assert_eq!(*basket.get(&Fruit::Lychee).unwrap(), 5);
}
#[test]
fn at_least_five_types_of_fruits() {
let mut basket = get_fruit_basket();
fruit_basket(&mut basket);
let count_fruit_kinds = basket.len();
assert!(count_fruit_kinds >= 5);
}
#[test]
fn greater_than_eleven_fruits() {
let mut basket = get_fruit_basket();
fruit_basket(&mut basket);
let count = basket.values().sum::<u32>();
assert!(count > 11);
}
#[test]
fn all_fruit_types_in_basket() {
let fruit_kinds = [
Fruit::Apple,
Fruit::Banana,
Fruit::Mango,
Fruit::Lychee,
Fruit::Pineapple,
];
let mut basket = get_fruit_basket();
fruit_basket(&mut basket);
for fruit_kind in fruit_kinds {
let Some(amount) = basket.get(&fruit_kind) else {
panic!("Fruit kind {fruit_kind:?} was not found in basket");
};
assert!(*amount > 0);
}
}
}

View File

@@ -0,0 +1,77 @@
// A list of scores (one per line) of a soccer match is given. Each line is of
// the form "<team_1_name>,<team_2_name>,<team_1_goals>,<team_2_goals>"
// Example: "England,France,4,2" (England scored 4 goals, France 2).
//
// You have to build a scores table containing the name of the team, the total
// number of goals the team scored, and the total number of goals the team
// conceded.
use std::collections::HashMap;
// A structure to store the goal details of a team.
#[derive(Default)]
struct TeamScores {
goals_scored: u8,
goals_conceded: u8,
}
fn build_scores_table(results: &str) -> HashMap<&str, TeamScores> {
// The name of the team is the key and its associated struct is the value.
let mut scores = HashMap::new();
for line in results.lines() {
let mut split_iterator = line.split(',');
// NOTE: We use `unwrap` because we didn't deal with error handling yet.
let team_1_name = split_iterator.next().unwrap();
let team_2_name = split_iterator.next().unwrap();
let team_1_score: u8 = split_iterator.next().unwrap().parse().unwrap();
let team_2_score: u8 = split_iterator.next().unwrap().parse().unwrap();
// TODO: Populate the scores table with the extracted details.
// Keep in mind that goals scored by team 1 will be the number of goals
// conceded by team 2. Similarly, goals scored by team 2 will be the
// number of goals conceded by team 1.
}
scores
}
fn main() {
// You can optionally experiment here.
}
#[cfg(test)]
mod tests {
use super::*;
const RESULTS: &str = "England,France,4,2
France,Italy,3,1
Poland,Spain,2,0
Germany,England,2,1
England,Spain,1,0";
#[test]
fn build_scores() {
let scores = build_scores_table(RESULTS);
assert!(["England", "France", "Germany", "Italy", "Poland", "Spain"]
.into_iter()
.all(|team_name| scores.contains_key(team_name)));
}
#[test]
fn validate_team_score_1() {
let scores = build_scores_table(RESULTS);
let team = scores.get("England").unwrap();
assert_eq!(team.goals_scored, 6);
assert_eq!(team.goals_conceded, 4);
}
#[test]
fn validate_team_score_2() {
let scores = build_scores_table(RESULTS);
let team = scores.get("Spain").unwrap();
assert_eq!(team.goals_scored, 0);
assert_eq!(team.goals_conceded, 3);
}
}

View File

@@ -0,0 +1,21 @@
# Options
Type Option represents an optional value: every Option is either Some and contains a value, or None, and does not.
Option types are very common in Rust code, as they have a number of uses:
- Initial values
- Return values for functions that are not defined over their entire input range (partial functions)
- Return value for otherwise reporting simple errors, where None is returned on error
- Optional struct fields
- Struct fields that can be loaned or "taken"
- Optional function arguments
- Nullable pointers
- Swapping things out of difficult situations
## Further Information
- [Option Enum Format](https://doc.rust-lang.org/book/ch10-01-syntax.html#in-enum-definitions)
- [Option Module Documentation](https://doc.rust-lang.org/std/option/)
- [Option Enum Documentation](https://doc.rust-lang.org/std/option/enum.Option.html)
- [if let](https://doc.rust-lang.org/rust-by-example/flow_control/if_let.html)
- [while let](https://doc.rust-lang.org/rust-by-example/flow_control/while_let.html)

View File

@@ -0,0 +1,36 @@
// This function returns how much icecream there is left in the fridge.
// If it's before 22:00 (24-hour system), then 5 scoops are left. At 22:00,
// someone eats it all, so no icecream is left (value 0). Return `None` if
// `hour_of_day` is higher than 23.
fn maybe_icecream(hour_of_day: u16) -> Option<u16> {
// TODO: Complete the function body.
}
fn main() {
// You can optionally experiment here.
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn raw_value() {
// TODO: Fix this test. How do you get the value contained in the
// Option?
let icecreams = maybe_icecream(12);
assert_eq!(icecreams, 5); // Don't change this line.
}
#[test]
fn check_icecream() {
assert_eq!(maybe_icecream(0), Some(5));
assert_eq!(maybe_icecream(9), Some(5));
assert_eq!(maybe_icecream(18), Some(5));
assert_eq!(maybe_icecream(22), Some(0));
assert_eq!(maybe_icecream(23), Some(0));
assert_eq!(maybe_icecream(24), None);
assert_eq!(maybe_icecream(25), None);
}
}

View File

@@ -0,0 +1,39 @@
fn main() {
// You can optionally experiment here.
}
#[cfg(test)]
mod tests {
#[test]
fn simple_option() {
let target = "rustlings";
let optional_target = Some(target);
// TODO: Make this an if-let statement whose value is `Some`.
word = optional_target {
assert_eq!(word, target);
}
}
#[test]
fn layered_option() {
let range = 10;
let mut optional_integers: Vec<Option<i8>> = vec![None];
for i in 1..=range {
optional_integers.push(Some(i));
}
let mut cursor = range;
// TODO: Make this a while-let statement. Remember that `Vec::pop()`
// adds another layer of `Option`. You can do nested pattern matching
// in if-let and while-let statements.
integer = optional_integers.pop() {
assert_eq!(integer, cursor);
cursor -= 1;
}
assert_eq!(cursor, 0);
}
}

View File

@@ -0,0 +1,17 @@
#[derive(Debug)]
struct Point {
x: i32,
y: i32,
}
fn main() {
let optional_point = Some(Point { x: 100, y: 200 });
// TODO: Fix the compiler error by adding something to this match statement.
match optional_point {
Some(p) => println!("Co-ordinates are {},{}", p.x, p.y),
_ => panic!("No match!"),
}
println!("{optional_point:?}"); // Don't change this line.
}

View File

@@ -0,0 +1,12 @@
# Error handling
Most errors aren’t serious enough to require the program to stop entirely.
Sometimes, when a function fails, it’s for a reason that you can easily interpret and respond to.
For example, if you try to open a file and that operation fails because the file doesn’t exist, you might want to create the file instead of terminating the process.
## Further information
- [Error Handling](https://doc.rust-lang.org/book/ch09-02-recoverable-errors-with-result.html)
- [Generics](https://doc.rust-lang.org/book/ch10-01-syntax.html)
- [Result](https://doc.rust-lang.org/rust-by-example/error/result.html)
- [Boxing errors](https://doc.rust-lang.org/rust-by-example/error/multiple_error_types/boxing_errors.html)

View File

@@ -0,0 +1,41 @@
// TODO: This function refuses to generate text to be printed on a nametag if
// you pass it an empty string. It'd be nicer if it explained what the problem
// was instead of just returning `None`. Thankfully, Rust has a similar
// construct to `Option` that can be used to express error conditions. Change
// the function signature and body to return `Result<String, String>` instead
// of `Option<String>`.
fn generate_nametag_text(name: String) -> Option<String> {
if name.is_empty() {
// Empty names aren't allowed
None
} else {
Some(format!("Hi! My name is {name}"))
}
}
fn main() {
// You can optionally experiment here.
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn generates_nametag_text_for_a_nonempty_name() {
assert_eq!(
generate_nametag_text("Beyoncé".to_string()).as_deref(),
Ok("Hi! My name is Beyoncé"),
);
}
#[test]
fn explains_why_generating_nametag_text_fails() {
assert_eq!(
generate_nametag_text(String::new())
.as_ref()
.map_err(|e| e.as_str()),
Err("Empty names aren't allowed"),
);
}
}

View File

@@ -0,0 +1,50 @@
// Say we're writing a game where you can buy items with tokens. All items cost
// 5 tokens, and whenever you purchase items there is a processing fee of 1
// token. A player of the game will type in how many items they want to buy, and
// the `total_cost` function will calculate the total cost of the items. Since
// the player typed in the quantity, we get it as a string. They might have
// typed anything, not just numbers!
//
// Right now, this function isn't handling the error case at all. What we want
// to do is: If we call the `total_cost` function on a string that is not a
// number, that function will return a `ParseIntError`. In that case, we want to
// immediately return that error from our function and not try to multiply and
// add.
//
// There are at least two ways to implement this that are both correct. But one
// is a lot shorter!
use std::num::ParseIntError;
fn total_cost(item_quantity: &str) -> Result<i32, ParseIntError> {
let processing_fee = 1;
let cost_per_item = 5;
// TODO: Handle the error case as described above.
let qty = item_quantity.parse::<i32>();
Ok(qty * cost_per_item + processing_fee)
}
fn main() {
// You can optionally experiment here.
}
#[cfg(test)]
mod tests {
use super::*;
use std::num::IntErrorKind;
#[test]
fn item_quantity_is_a_valid_number() {
assert_eq!(total_cost("34"), Ok(171));
}
#[test]
fn item_quantity_is_an_invalid_number() {
assert_eq!(
total_cost("beep boop").unwrap_err().kind(),
&IntErrorKind::InvalidDigit,
);
}
}

View File

@@ -0,0 +1,31 @@
// This is a program that is trying to use a completed version of the
// `total_cost` function from the previous exercise. It's not working though!
// Why not? What should we do to fix it?
use std::num::ParseIntError;
// Don't change this function.
fn total_cost(item_quantity: &str) -> Result<i32, ParseIntError> {
let processing_fee = 1;
let cost_per_item = 5;
let qty = item_quantity.parse::<i32>()?;
Ok(qty * cost_per_item + processing_fee)
}
// TODO: Fix the compiler error by changing the signature and body of the
// `main` function.
fn main() {
let mut tokens = 100;
let pretend_user_input = "8";
// Don't change this line.
let cost = total_cost(pretend_user_input)?;
if cost > tokens {
println!("You can't afford that many!");
} else {
tokens -= cost;
println!("You now have {tokens} tokens.");
}
}

View File

@@ -0,0 +1,37 @@
#[derive(PartialEq, Debug)]
enum CreationError {
Negative,
Zero,
}
#[derive(PartialEq, Debug)]
struct PositiveNonzeroInteger(u64);
impl PositiveNonzeroInteger {
fn new(value: i64) -> Result<Self, CreationError> {
// TODO: This function shouldn't always return an `Ok`.
Ok(Self(value as u64))
}
}
fn main() {
// You can optionally experiment here.
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_creation() {
assert_eq!(
PositiveNonzeroInteger::new(10),
Ok(PositiveNonzeroInteger(10)),
);
assert_eq!(
PositiveNonzeroInteger::new(-10),
Err(CreationError::Negative),
);
assert_eq!(PositiveNonzeroInteger::new(0), Err(CreationError::Zero));
}
}

View File

@@ -0,0 +1,56 @@
// This exercise is an altered version of the `errors4` exercise. It uses some
// concepts that we won't get to until later in the course, like `Box` and the
// `From` trait. It's not important to understand them in detail right now, but
// you can read ahead if you like. For now, think of the `Box<dyn ???>` type as
// an "I want anything that does ???" type.
//
// In short, this particular use case for boxes is for when you want to own a
// value and you care only that it is a type which implements a particular
// trait. To do so, The `Box` is declared as of type `Box<dyn Trait>` where
// `Trait` is the trait the compiler looks for on any value used in that
// context. For this exercise, that context is the potential errors which
// can be returned in a `Result`.
use std::error::Error;
use std::fmt;
#[derive(PartialEq, Debug)]
enum CreationError {
Negative,
Zero,
}
// This is required so that `CreationError` can implement `Error`.
impl fmt::Display for CreationError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
let description = match *self {
CreationError::Negative => "number is negative",
CreationError::Zero => "number is zero",
};
f.write_str(description)
}
}
impl Error for CreationError {}
#[derive(PartialEq, Debug)]
struct PositiveNonzeroInteger(u64);
impl PositiveNonzeroInteger {
fn new(value: i64) -> Result<PositiveNonzeroInteger, CreationError> {
match value {
x if x < 0 => Err(CreationError::Negative),
0 => Err(CreationError::Zero),
x => Ok(PositiveNonzeroInteger(x as u64)),
}
}
}
// TODO: Add the correct return type `Result<(), Box<dyn ???>>`. What can we
// use to describe both errors? Is there a trait which both errors implement?
fn main() {
let pretend_user_input = "42";
let x: i64 = pretend_user_input.parse()?;
println!("output={:?}", PositiveNonzeroInteger::new(x)?);
Ok(())
}

View File

@@ -0,0 +1,89 @@
// Using catch-all error types like `Box<dyn Error>` isn't recommended for
// library code where callers might want to make decisions based on the error
// content instead of printing it out or propagating it further. Here, we define
// a custom error type to make it possible for callers to decide what to do next
// when our function returns an error.
use std::num::ParseIntError;
#[derive(PartialEq, Debug)]
enum CreationError {
Negative,
Zero,
}
// A custom error type that we will be using in `PositiveNonzeroInteger::parse`.
#[derive(PartialEq, Debug)]
enum ParsePosNonzeroError {
Creation(CreationError),
ParseInt(ParseIntError),
}
impl ParsePosNonzeroError {
fn from_creation(err: CreationError) -> Self {
Self::Creation(err)
}
// TODO: Add another error conversion function here.
// fn from_parse_int(???) -> Self { ??? }
}
#[derive(PartialEq, Debug)]
struct PositiveNonzeroInteger(u64);
impl PositiveNonzeroInteger {
fn new(value: i64) -> Result<Self, CreationError> {
match value {
x if x < 0 => Err(CreationError::Negative),
0 => Err(CreationError::Zero),
x => Ok(Self(x as u64)),
}
}
fn parse(s: &str) -> Result<Self, ParsePosNonzeroError> {
// TODO: change this to return an appropriate error instead of panicking
// when `parse()` returns an error.
let x: i64 = s.parse().unwrap();
Self::new(x).map_err(ParsePosNonzeroError::from_creation)
}
}
fn main() {
// You can optionally experiment here.
}
#[cfg(test)]
mod test {
use super::*;
#[test]
fn test_parse_error() {
assert!(matches!(
PositiveNonzeroInteger::parse("not a number"),
Err(ParsePosNonzeroError::ParseInt(_)),
));
}
#[test]
fn test_negative() {
assert_eq!(
PositiveNonzeroInteger::parse("-555"),
Err(ParsePosNonzeroError::Creation(CreationError::Negative)),
);
}
#[test]
fn test_zero() {
assert_eq!(
PositiveNonzeroInteger::parse("0"),
Err(ParsePosNonzeroError::Creation(CreationError::Zero)),
);
}
#[test]
fn test_positive() {
let x = PositiveNonzeroInteger::new(42).unwrap();
assert_eq!(x.0, 42);
assert_eq!(PositiveNonzeroInteger::parse("42"), Ok(x));
}
}

View File

@@ -0,0 +1,11 @@
# Generics
Generics is the topic of generalizing types and functionalities to broader cases.
This is extremely useful for reducing code duplication in many ways, but can call for some rather involved syntax.
Namely, being generic requires taking great care to specify over which types a generic type is actually considered valid.
The simplest and most common use of generics is for type parameters.
## Further information
- [Generic Data Types](https://doc.rust-lang.org/book/ch10-01-syntax.html)
- [Bounds](https://doc.rust-lang.org/rust-by-example/generics/bounds.html)

View File

@@ -0,0 +1,18 @@
// `Vec<T>` is generic over the type `T`. In most cases, the compiler is able to
// infer `T`, for example after pushing a value with a concrete type to the vector.
// But in this exercise, the compiler needs some help through a type annotation.
fn main() {
// TODO: Fix the compiler error by annotating the type of the vector
// `Vec<T>`. Choose `T` as some integer type that can be created from
// `u8` and `i8`.
let mut numbers = Vec::new();
// Don't change the lines below.
let n1: u8 = 42;
numbers.push(n1.into());
let n2: i8 = -1;
numbers.push(n2.into());
println!("{numbers:?}");
}

View File

@@ -0,0 +1,31 @@
// This powerful wrapper provides the ability to store a positive integer value.
// TODO: Rewrite it using a generic so that it supports wrapping ANY type.
struct Wrapper {
value: u32,
}
// TODO: Adapt the struct's implementation to be generic over the wrapped value.
impl Wrapper {
fn new(value: u32) -> Self {
Wrapper { value }
}
}
fn main() {
// You can optionally experiment here.
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn store_u32_in_wrapper() {
assert_eq!(Wrapper::new(42).value, 42);
}
#[test]
fn store_str_in_wrapper() {
assert_eq!(Wrapper::new("Foo").value, "Foo");
}
}

View File

@@ -0,0 +1,19 @@
# Traits
A trait is a collection of methods.
Data types can implement traits. To do so, the methods making up the trait are defined for the data type. For example, the `String` data type implements the `From<&str>` trait. This allows a user to write `String::from("hello")`.
In this way, traits are somewhat similar to Java interfaces and C++ abstract classes.
Some additional common Rust traits include:
- `Clone` (the `clone` method)
- `Display` (which allows formatted display via `{}`)
- `Debug` (which allows formatted display via `{:?}`)
Because traits indicate shared behavior between data types, they are useful when writing generics.
## Further information
- [Traits](https://doc.rust-lang.org/book/ch10-02-traits.html)

View File

@@ -0,0 +1,30 @@
// The trait `AppendBar` has only one function which appends "Bar" to any object
// implementing this trait.
trait AppendBar {
fn append_bar(self) -> Self;
}
impl AppendBar for String {
// TODO: Implement `AppendBar` for the type `String`.
}
fn main() {
let s = String::from("Foo");
let s = s.append_bar();
println!("s: {s}");
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn is_foo_bar() {
assert_eq!(String::from("Foo").append_bar(), "FooBar");
}
#[test]
fn is_bar_bar() {
assert_eq!(String::from("").append_bar().append_bar(), "BarBar");
}
}

View File

@@ -0,0 +1,22 @@
trait AppendBar {
fn append_bar(self) -> Self;
}
// TODO: Implement the trait `AppendBar` for a vector of strings.
// `append_bar` should push the string "Bar" into the vector.
fn main() {
// You can optionally experiment here.
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn is_vec_pop_eq_bar() {
let mut foo = vec![String::from("Foo")].append_bar();
assert_eq!(foo.pop().unwrap(), "Bar");
assert_eq!(foo.pop().unwrap(), "Foo");
}
}

View File

@@ -0,0 +1,40 @@
#![allow(dead_code)]
trait Licensed {
// TODO: Add a default implementation for `licensing_info` so that
// implementors like the two structs below can share that default behavior
// without repeating the function.
// The default license information should be the string "Default license".
fn licensing_info(&self) -> String;
}
struct SomeSoftware {
version_number: i32,
}
struct OtherSoftware {
version_number: String,
}
impl Licensed for SomeSoftware {} // Don't edit this line.
impl Licensed for OtherSoftware {} // Don't edit this line.
fn main() {
// You can optionally experiment here.
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn is_licensing_info_the_same() {
let licensing_info = "Default license";
let some_software = SomeSoftware { version_number: 1 };
let other_software = OtherSoftware {
version_number: "v2.0.0".to_string(),
};
assert_eq!(some_software.licensing_info(), licensing_info);
assert_eq!(other_software.licensing_info(), licensing_info);
}
}

View File

@@ -0,0 +1,35 @@
trait Licensed {
fn licensing_info(&self) -> String {
"Default license".to_string()
}
}
struct SomeSoftware;
struct OtherSoftware;
impl Licensed for SomeSoftware {}
impl Licensed for OtherSoftware {}
// TODO: Fix the compiler error by only changing the signature of this function.
fn compare_license_types(software1: ???, software2: ???) -> bool {
software1.licensing_info() == software2.licensing_info()
}
fn main() {
// You can optionally experiment here.
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn compare_license_information() {
assert!(compare_license_types(SomeSoftware, OtherSoftware));
}
#[test]
fn compare_license_information_backwards() {
assert!(compare_license_types(OtherSoftware, SomeSoftware));
}
}

View File

@@ -0,0 +1,39 @@
trait SomeTrait {
fn some_function(&self) -> bool {
true
}
}
trait OtherTrait {
fn other_function(&self) -> bool {
true
}
}
struct SomeStruct;
impl SomeTrait for SomeStruct {}
impl OtherTrait for SomeStruct {}
struct OtherStruct;
impl SomeTrait for OtherStruct {}
impl OtherTrait for OtherStruct {}
// TODO: Fix the compiler error by only changing the signature of this function.
fn some_func(item: ???) -> bool {
item.some_function() && item.other_function()
}
fn main() {
// You can optionally experiment here.
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_some_func() {
assert!(some_func(SomeStruct));
assert!(some_func(OtherStruct));
}
}

View File

@@ -0,0 +1,22 @@
# Lifetimes
Lifetimes tell the compiler how to check whether references live long
enough to be valid in any given situation. For example lifetimes say
"make sure parameter 'a' lives as long as parameter 'b' so that the return
value is valid".
They are only necessary on borrows, i.e. references,
since copied parameters or moves are owned in their scope and cannot
be referenced outside. Lifetimes mean that calling code of e.g. functions
can be checked to make sure their arguments are valid. Lifetimes are
restrictive of their callers.
If you'd like to learn more about lifetime annotations, the
[lifetimekata](https://tfpk.github.io/lifetimekata/) project
has a similar style of exercises to Rustlings, but is all about
learning to write lifetime annotations.
## Further information
- [Lifetimes (in Rust By Example)](https://doc.rust-lang.org/stable/rust-by-example/scope/lifetime.html)
- [Validating References with Lifetimes](https://doc.rust-lang.org/book/ch10-03-lifetime-syntax.html)

View File

@@ -0,0 +1,28 @@
// The Rust compiler needs to know how to check whether supplied references are
// valid, so that it can let the programmer know if a reference is at risk of
// going out of scope before it is used. Remember, references are borrows and do
// not own their own data. What if their owner goes out of scope?
// TODO: Fix the compiler error by updating the function signature.
fn longest(x: &str, y: &str) -> &str {
if x.len() > y.len() {
x
} else {
y
}
}
fn main() {
// You can optionally experiment here.
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_longest() {
assert_eq!(longest("abcd", "123"), "abcd");
assert_eq!(longest("abc", "1234"), "1234");
}
}

View File

@@ -0,0 +1,20 @@
// Don't change this function.
fn longest<'a>(x: &'a str, y: &'a str) -> &'a str {
if x.len() > y.len() {
x
} else {
y
}
}
fn main() {
// TODO: Fix the compiler error by moving one line.
let string1 = String::from("long string is long");
let result;
{
let string2 = String::from("xyz");
result = longest(&string1, &string2);
}
println!("The longest string is '{result}'");
}

View File

@@ -0,0 +1,16 @@
// Lifetimes are also needed when structs hold references.
// TODO: Fix the compiler errors about the struct.
struct Book {
author: &str,
title: &str,
}
fn main() {
let book = Book {
author: "George Orwell",
title: "1984",
};
println!("{} by {}", book.title, book.author);
}

View File

@@ -1,7 +1,7 @@
### Tests
# Tests
Going out of order from the book to cover tests -- many of the following exercises will ask you to make tests pass!
#### Book Sections
## Further information
- [Writing Tests](https://doc.rust-lang.org/stable/book/ch11-01-writing-tests.html)
- [Writing Tests](https://doc.rust-lang.org/book/ch11-01-writing-tests.html)

Some files were not shown because too many files have changed in this diff Show More