- 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.
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.