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.
Detect if we are in a cargo project more reliably. (e.g. if
rustlings init
is run in thesrc/
directory)Refuse to initialize rustlings in a non-workspace cargo project.
Automatically populate the
workspace.members
field ifrustlings 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.