-
Notifications
You must be signed in to change notification settings - Fork 2.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add a mean to mutably access the members of a workspace #9547
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.