Skip to content

Commit 41aa44b

Browse files
committed
Use Array::sort_by to sort the members list.
Signed-off-by: David Calavera <[email protected]>
1 parent ebc1eab commit 41aa44b

File tree

3 files changed

+14
-17
lines changed

3 files changed

+14
-17
lines changed

Cargo.lock

Lines changed: 6 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ tempfile = "3.8.0"
9292
thiserror = "1.0.49"
9393
time = { version = "0.3", features = ["parsing", "formatting", "serde"] }
9494
toml = "0.8.2"
95-
toml_edit = { version = "0.20.2", features = ["serde"] }
95+
toml_edit = { version = "0.20.7", features = ["serde"] }
9696
tracing = "0.1.37"
9797
tracing-subscriber = { version = "0.3.17", features = ["env-filter"] }
9898
unicase = "2.7.0"

src/cargo/ops/cargo_new.rs

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -996,11 +996,11 @@ fn update_manifest_with_new_member(
996996
// - Add the relative path if the members don't match the new package's path.
997997
// - Create a new members array if there are no members element in the workspace yet.
998998
if let Some(members) = workspace_document
999-
.get("workspace")
1000-
.and_then(|workspace| workspace.get("members"))
1001-
.and_then(|members| members.as_array())
999+
.get_mut("workspace")
1000+
.and_then(|workspace| workspace.get_mut("members"))
1001+
.and_then(|members| members.as_array_mut())
10021002
{
1003-
for member in members {
1003+
for member in members.iter() {
10041004
let pat = member
10051005
.as_str()
10061006
.with_context(|| format!("invalid non-string member `{}`", member))?;
@@ -1012,14 +1012,11 @@ fn update_manifest_with_new_member(
10121012
}
10131013
}
10141014

1015-
let was_sorted = is_sorted(members.iter().filter_map(Value::as_str));
1016-
let mut values: Vec<&str> = members.iter().filter_map(Value::as_str).collect();
1017-
values.push(&display_path);
1015+
let was_sorted = is_sorted(members.iter().map(Value::as_str));
1016+
members.push(&display_path);
10181017
if was_sorted {
1019-
values.sort();
1018+
members.sort_by(|lhs, rhs| lhs.as_str().cmp(&rhs.as_str()));
10201019
}
1021-
let array = Array::from_iter(values);
1022-
workspace_document["workspace"]["members"] = toml_edit::value(array);
10231020
} else {
10241021
let mut array = Array::new();
10251022
array.push(&display_path);

0 commit comments

Comments
 (0)