-
Notifications
You must be signed in to change notification settings - Fork 2.6k
Add a mean to mutably access the members of a workspace #9547
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Conversation
(rust-highfive has picked a reviewer for you, use r? to override) |
Thanks! I would naively expect the non- |
They are morally the same, but I cannot implement the mutable version using the same approach since The non-mutable version iterates over a Vec and do the hashmap lookup, the mutable iterates over the HashMap and does a linear search over the Vec since it does not have other way to ensure that the mutable references do not overlap. I can remove the custom struct and return the |
It is used by cargo-c to patch all the lib crates in a workspace.
Now the code is similar enough, hopefully. |
.collect(); | ||
|
||
packages.iter_mut().filter_map(move |(path, package)| { | ||
if members.contains(path) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could this use package.get_mut
like above uses packages.get
?
(same for default_members_mut
below)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
no, the get_mut
lifetime gets (rightfully) in the way.
@bors: r+ Ah yes, indeed! |
📌 Commit b26ceda has been approved by |
☀️ Test successful - checks-actions |
Update cargo 10 commits in aa8b09297bb3156b849e73db48af4cd050492fe6..81537ee3f7bd97ff7821b6c86c148764d40d26cd 2021-06-09 00:28:53 +0000 to 2021-06-11 00:00:14 +0000 - Change how the fix_deny_warnings_but_not_others test works (rust-lang/cargo#9571) - Add mising documentation regarding `cargo doc` (rust-lang/cargo#9565) - Implement warning for ignored trailing arguments (rust-lang/cargo#9561) - Make clippy happy (rust-lang/cargo#9569) - Fix rustc/rustdoc config values to be config-relative. (rust-lang/cargo#9566) - Update rustfix. (rust-lang/cargo#9567) - Warn if an "all" target is specified, but we don't match anything (rust-lang/cargo#9549) - add default_run to SerializedPackage (rust-lang/cargo#9550) - respect user choice of lib/bin over heuristics (rust-lang/cargo#9522) - Add a mean to mutably access the members of a workspace (rust-lang/cargo#9547)
Update cargo 10 commits in aa8b09297bb3156b849e73db48af4cd050492fe6..81537ee3f7bd97ff7821b6c86c148764d40d26cd 2021-06-09 00:28:53 +0000 to 2021-06-11 00:00:14 +0000 - Change how the fix_deny_warnings_but_not_others test works (rust-lang/cargo#9571) - Add mising documentation regarding `cargo doc` (rust-lang/cargo#9565) - Implement warning for ignored trailing arguments (rust-lang/cargo#9561) - Make clippy happy (rust-lang/cargo#9569) - Fix rustc/rustdoc config values to be config-relative. (rust-lang/cargo#9566) - Update rustfix. (rust-lang/cargo#9567) - Warn if an "all" target is specified, but we don't match anything (rust-lang/cargo#9549) - add default_run to SerializedPackage (rust-lang/cargo#9550) - respect user choice of lib/bin over heuristics (rust-lang/cargo#9522) - Add a mean to mutably access the members of a workspace (rust-lang/cargo#9547)
Update cargo 11 commits in aa8b09297bb3156b849e73db48af4cd050492fe6..44456677b5d1d82fe981c955dc5c67734b31f340 2021-06-09 00:28:53 +0000 to 2021-06-12 18:00:01 +0000 - Fix package_default_run test. (rust-lang/cargo#9577) - Change how the fix_deny_warnings_but_not_others test works (rust-lang/cargo#9571) - Add mising documentation regarding `cargo doc` (rust-lang/cargo#9565) - Implement warning for ignored trailing arguments (rust-lang/cargo#9561) - Make clippy happy (rust-lang/cargo#9569) - Fix rustc/rustdoc config values to be config-relative. (rust-lang/cargo#9566) - Update rustfix. (rust-lang/cargo#9567) - Warn if an "all" target is specified, but we don't match anything (rust-lang/cargo#9549) - add default_run to SerializedPackage (rust-lang/cargo#9550) - respect user choice of lib/bin over heuristics (rust-lang/cargo#9522) - Add a mean to mutably access the members of a workspace (rust-lang/cargo#9547)
It is used by cargo-c to patch all the lib crates in a workspace.