Commit graph

356 commits

Author SHA1 Message Date
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
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
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
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
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
dd025391f2 Make everything static 2024-03-28 17:52:51 +01:00
mo8it
e5efc68a91 Done macro 2024-03-28 17:34:48 +01:00
Mo
8e87c35c88
Merge pull request #1907 from honeywest/feat/ui-format
feat: ui format
2024-03-27 15:08:28 +01:00
mo8it
b24f256f2a Merge branch 'main' into project 2024-03-27 15:06:58 +01:00
mo8it
a27741b131 Merge branch 'main' into performance 2024-03-27 15:00:57 +01:00
mo8it
f995b4c041 Merge branch 'main' into watch 2024-03-27 14:41:26 +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
mo8it
8e0f7e56f7 Merge branch 'main' into which 2024-03-27 14:18:20 +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
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
mo8it
1fe32a7ff2 Fix the sysroot path when it contains whitespaces 2024-03-18 01:44:25 +01:00
Kazuki Matsuo
80388c042b
fix(verify): show stdout of the last line 2024-03-16 13:56:34 +09:00
Luca Plian
17ee0e3c7a
optimized the UI code (#1830) 2024-03-15 13:51:24 +01:00
liv
7f530ebf20
Merge pull request #1783 from neuschaefer/fe-nish
Fe-nish line rendering improvements
2023-11-29 17:33:41 +01:00
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
Matthias Richter
adf7d1b975 chore(watch): update notify dependency to v6
closes #1640
2023-11-17 00:56:02 +01:00
danieltinazzi
3181d9f3f8 fix progress bar count 2023-11-04 17:29:10 +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
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
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
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
mo8it
5a93f2a4f1 Port to Clap 2023-09-04 13:30:46 +02:00
liv
d79984dbda
Merge pull request #1637 from mo8it/fix-warnings
Run clippy --fix
2023-08-28 13:38:21 +02:00
mo8it
c0b8af2c42 Fix indicatif 2023-08-26 23:35:07 +02:00
mo8it
571bab20c1 Run clippy --fix 2023-08-26 23:07:20 +02: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
f452fd7bb0 release: 5.5.0 2023-05-17 16:30:22 +02:00
liv
9508e97914 feat: write absolute root module paths for lsp 2023-05-17 16:14:10 +02:00
Romain Bayle
c44e3025f9 option success_hints added to the struct Watchargs instead of Args 2023-05-02 22:46:41 +02:00
Romain Bayle
5d3696a9e6 feat(cli): added success-hints option for the rustlings command
closes #1373
2023-05-01 03:04:06 +02:00
Sebastian LaVine
a4a5691a7b
feat: Add "!" command to rustlings watch 2023-04-16 21:44:08 -04:00
Alexandre ESSE
d7111cb4a3 fix(main.rs): remove trailing spaces 2023-03-31 11:58:15 +02:00
liv
7f1754ecc5 release: 5.4.1 2023-03-10 17:39:59 +01:00
Nidhal Messaoudi
1acbbb6d43 Fixing the progress percentage 2023-02-27 21:17:45 +01:00
liv
fc9fb536ca release: 5.4.0 2023-02-12 18:01:48 +01:00
wjwrh
1721ddc231 Fix the problem of different edition between rustc and rust-analyzer 2023-02-05 14:10:23 +08: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
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
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
142633533e
Merge pull request #1294 from dbarrosop/nix-darwin
fix nix environment
2023-01-03 10:20:47 +01:00
liv
9ad884aadb chore: bump version 2022-12-23 16:55:42 +01:00
David Barroso
b2df015fe6 when generating lsp config use RUST_SRC_PATH if set 2022-12-10 14:05:44 +01: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
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
mokou
c923e7af73 chore: release 5.2.1 2022-09-06 12:22:17 +02:00
mokou
3309a01b5e chore: release 5.2.0 2022-08-27 19:48:15 +01:00
magnusrodseth
d59dde320b chore: Add suggested changes 2022-08-18 12:47:26 +02:00
magnusrodseth
6f44cb1dd2 feat: Add reset command, given a filename 2022-08-17 16:31:53 +02:00
mokou
d0c7b06eff chore: release 5.1.1 2022-08-17 10:43:50 +02:00
mokou
714a8075cc chore: bump version 2022-08-16 09:54:25 +02:00
mokou
5435b80841 chore: bump version 2022-07-16 14:30:04 +02:00
mokou
ed0f278a8f chore: remove mod.rs files and exercises feature 2022-07-11 12:53:49 +02: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
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
Jack Clayton
be87cc9fa6 Add lsp command to fix rust-analyzer 2022-06-17 11:36:06 +08:00
Ryan Lowe
6fae5d6114
Merge branch 'main' into progress-indicator 2022-04-20 23:29:47 -04: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
cf9f382873 chore: bump version 2022-04-14 11:16:00 +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
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
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
radicale
71a06044e6
fix(clippy1): Set clippy::float_cmp lint to deny (#907) 2022-02-04 14:39:09 +01:00
Galih wisnuaji
9b27e8d993 chore : replace filter_map() with find_map() 2021-12-24 13:48:43 +07:00
ana
d57c183028 release: 4.6.0 2021-09-25 11:23:05 +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
LIU JIE
06d5c0973a
fix(cli): typo in exercise.rs (#848) 2021-09-21 11:50:15 +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
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
ana
ba087ce64a release: 4.5.0
Signed-off-by: ana <ana@ana.st>
2021-07-07 22:23:52 +02: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
apogeeoak
f78c480208 fix(cli): Move long text strings into constants. 2021-04-27 17:14:54 -04:00
mokou
84461c20cb release: 4.4.0 2021-04-24 11:57:00 +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
mokou
347f30bd86 fix(main): Let find_exercise work with borrows 2021-04-21 16:21:56 +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
Patrick Hintermayer
1c6f7e4b7b
feat(list): updated progress percentage 2021-04-19 09:39:05 +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
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
circumspect
833df0b8b3
chore: fix typo
Co-authored-by: Chenkail <40770208+Chenkail@users.noreply.github.com>
2021-03-12 15:26:57 +01:00
Larry Garfield
91ee27f22b
fix: Spelling error 2021-02-24 15:03:26 -06:00
apogeeoak
2e84f34cf3 chore: Updated source to follow clippy suggestions. 2021-02-09 18:21:18 -05: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