Skip to content

Commit 4f26cf3

Browse files
committed
Inline special_version in toolchain_sort
1 parent 16cdde2 commit 4f26cf3

File tree

1 file changed

+20
-14
lines changed

1 file changed

+20
-14
lines changed

src/toolchain/names.rs

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -311,27 +311,33 @@ impl Display for ToolchainName {
311311
pub(crate) fn toolchain_sort(v: &mut [ToolchainName]) {
312312
use semver::{BuildMetadata, Prerelease, Version};
313313

314-
fn special_version(ord: u64, s: &str) -> Version {
315-
Version {
314+
v.sort_by_key(|name| {
315+
let s: &str = &format!("{name}");
316+
let default_ver = Version {
316317
major: 0,
317318
minor: 0,
318319
patch: 0,
319-
pre: Prerelease::new(&format!("pre.{}.{}", ord, s.replace('_', "-"))).unwrap(),
320+
pre: Prerelease::EMPTY,
320321
build: BuildMetadata::EMPTY,
321-
}
322-
}
322+
};
323323

324-
v.sort_by_key(|name| {
325-
let s: &str = &format!("{name}");
326324
if s.starts_with("stable") {
327-
special_version(0, s)
328-
} else if s.starts_with("beta") {
329-
special_version(1, s)
330-
} else if s.starts_with("nightly") {
331-
special_version(2, s)
332-
} else {
333-
Version::parse(&s.replace('_', "-")).unwrap_or_else(|_| special_version(3, s))
325+
let pre = Prerelease::new(&format!("pre.{}.{}", 0, s.replace('_', "-"))).unwrap();
326+
return Version { pre, ..default_ver };
327+
}
328+
if s.starts_with("beta") {
329+
let pre = Prerelease::new(&format!("pre.{}.{}", 1, s.replace('_', "-"))).unwrap();
330+
return Version { pre, ..default_ver };
331+
}
332+
if s.starts_with("nightly") {
333+
let pre = Prerelease::new(&format!("pre.{}.{}", 2, s.replace('_', "-"))).unwrap();
334+
return Version { pre, ..default_ver };
335+
}
336+
if let Ok(v) = Version::parse(&s.replace('_', "-")) {
337+
return v;
334338
}
339+
let pre = Prerelease::new(&format!("pre.{}.{}", 3, s.replace('_', "-"))).unwrap();
340+
Version { pre, ..default_ver }
335341
});
336342
}
337343

0 commit comments

Comments
 (0)