enums3 feedback
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 30/100
Research direction
Start with the enums3 exercise and its existing test, especially the state.process() path mentioned in the report. Check how the match statements currently teach pattern matching, then determine the exercise and test changes needed to verify values are passed through and to clarify the naming and pattern-syntax guidance.
Written by the indexing model from the issue text.
Description
You can "cheese" enums3 by putting the test's desired values in the match statements:
match message {
Message::Resize { width, height } => self.resize(10, 30),
Message::ChangeColor(red, green, blue) => self.change_color(255, 0, 255),
Message::Quit => self.quit(),
Message::Move(Point) => self.move_position(Point),
Message::Echo(String) => self.echo(String),
}
This passes the test, albeit with a bunch of warnings about how the variables are unused.
Maybe add a second pass test to make sure the values are being passed through from state.process()?
I also found that I had absolutely no idea why I would be using "r, g, b" over "red, green, blue" when these are not technically defined by me. Is this some function of structs/enums? Is it part of a standard library? Is it specific to rgb?
Also, maybe this exercise should take further advantage of match patterns? If the exercise's purpose is to teach match pattern syntax, I think maybe it should show off exhaustive match patterns as well. (Or maybe there should just be an entire exercise folder dedicated to match patterns, because this throws several new concepts at you at once.)
Hopefully I am not wasting time with this issue, I just found this exercise really confusing.
- Dominant language
- Rust
- Stars
- 64.6k
- Forks
- 11.3k
- PR merge metrics
- No merged PRs in 30d
Getting set up
- No Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from rust-lang/rustlings
-
Difficulty 1/5 Under an hour Newbie friendliness 90/100
-
A-exercises C-enhancement P-low
Difficulty 1/5 Under an hour Newbie friendliness 76/100
-
Difficulty 3/5 1-2 days Newbie friendliness 55/100
-
Proposal: German (Deutsch) translation for Community ExercisesMay be free again @mo8it claimed this 62 days ago, and no pull request is open. Open
rust-lang/rustlings#2445 · 4 comments · 2 reactions · 1 assignee ·
-
Difficulty 5/5 Over a week Newbie friendliness 35/100
All issues in rust-lang/rustlings
Similar issues
-
bug priority: medium
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
storytold/photocraft#12706 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
IngvarConsulting/unica#2822 ·
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100