Exercism: Rust version of the 'Matching Brackets' exercise.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

85 lines
2.8 KiB

3 years ago
  1. # Matching Brackets
  2. Given a string containing brackets `[]`, braces `{}`, parentheses `()`,
  3. or any combination thereof, verify that any and all pairs are matched
  4. and nested correctly.
  5. ## Rust Installation
  6. Refer to the [exercism help page][help-page] for Rust installation and learning
  7. resources.
  8. ## Writing the Code
  9. Execute the tests with:
  10. ```bash
  11. $ cargo test
  12. ```
  13. All but the first test have been ignored. After you get the first test to
  14. pass, open the tests source file which is located in the `tests` directory
  15. and remove the `#[ignore]` flag from the next test and get the tests to pass
  16. again. Each separate test is a function with `#[test]` flag above it.
  17. Continue, until you pass every test.
  18. If you wish to run all ignored tests without editing the tests source file, use:
  19. ```bash
  20. $ cargo test -- --ignored
  21. ```
  22. To run a specific test, for example `some_test`, you can use:
  23. ```bash
  24. $ cargo test some_test
  25. ```
  26. If the specific test is ignored use:
  27. ```bash
  28. $ cargo test some_test -- --ignored
  29. ```
  30. To learn more about Rust tests refer to the [online test documentation][rust-tests]
  31. Make sure to read the [Modules][modules] chapter if you
  32. haven't already, it will help you with organizing your files.
  33. ## Further improvements
  34. After you have solved the exercise, please consider using the additional utilities, described in the [installation guide](https://exercism.io/tracks/rust/installation), to further refine your final solution.
  35. To format your solution, inside the solution directory use
  36. ```bash
  37. cargo fmt
  38. ```
  39. To see, if your solution contains some common ineffective use cases, inside the solution directory use
  40. ```bash
  41. cargo clippy --all-targets
  42. ```
  43. ## Submitting the solution
  44. Generally you should submit all files in which you implemented your solution (`src/lib.rs` in most cases). If you are using any external crates, please consider submitting the `Cargo.toml` file. This will make the review process faster and clearer.
  45. ## Feedback, Issues, Pull Requests
  46. The [exercism/rust](https://github.com/exercism/rust) repository on GitHub is the home for all of the Rust exercises. If you have feedback about an exercise, or want to help implement new exercises, head over there and create an issue. Members of the rust track team are happy to help!
  47. If you want to know more about Exercism, take a look at the [contribution guide](https://github.com/exercism/docs/blob/main/contributing-to-language-tracks/README.md).
  48. [help-page]: https://exercism.io/tracks/rust/learning
  49. [modules]: https://doc.rust-lang.org/book/ch07-02-defining-modules-to-control-scope-and-privacy.html
  50. [cargo]: https://doc.rust-lang.org/book/ch14-00-more-about-cargo.html
  51. [rust-tests]: https://doc.rust-lang.org/book/ch11-02-running-tests.html
  52. ## Source
  53. Ginna Baker
  54. ## Submitting Incomplete Solutions
  55. It's possible to submit an incomplete solution so you can see how others have completed the exercise.