Skip to content

Commit 13cbfb7

Browse files
dtolnaydjc
authored andcommitted
Update to semver 1.0.0
1 parent bede9a6 commit 13cbfb7

File tree

2 files changed

+10
-16
lines changed

2 files changed

+10
-16
lines changed

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ keywords = ["version", "rustc"]
1111
edition = "2018"
1212

1313
[dependencies]
14-
semver = "0.11"
14+
semver = "1.0"
1515

1616
[dev-dependencies]
1717
doc-comment = "0.3"

src/lib.rs

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,6 @@ use std::process::Command;
6161
use std::{env, error, fmt, io, num, str};
6262
use std::{ffi::OsString, str::FromStr};
6363

64-
use semver::{self, Identifier};
6564
// Convenience re-export to allow version comparison without needing to add
6665
// semver crate.
6766
pub use semver::Version;
@@ -231,12 +230,12 @@ pub fn version_meta_for(verbose_version_string: &str) -> Result<VersionMeta> {
231230
let release = expect_key("release", &map)?;
232231
let semver: Version = release.parse()?;
233232

234-
let channel = match semver.pre.first() {
235-
None => Channel::Stable,
236-
Some(Identifier::AlphaNumeric(s)) if s == "dev" => Channel::Dev,
237-
Some(Identifier::AlphaNumeric(s)) if s == "beta" => Channel::Beta,
238-
Some(Identifier::AlphaNumeric(s)) if s == "nightly" => Channel::Nightly,
239-
Some(x) => return Err(Error::UnknownPreReleaseTag(x.clone())),
233+
let channel = match semver.pre.split('.').next().unwrap() {
234+
"" => Channel::Stable,
235+
"dev" => Channel::Dev,
236+
"beta" => Channel::Beta,
237+
"nightly" => Channel::Nightly,
238+
x => return Err(Error::UnknownPreReleaseTag(x.to_owned())),
240239
};
241240

242241
let commit_hash = expect_key_or_unknown("commit-hash", &map)?;
@@ -353,12 +352,10 @@ pub enum Error {
353352
Utf8Error(str::Utf8Error),
354353
/// The output of `rustc -vV` was not in the expected format.
355354
UnexpectedVersionFormat,
356-
/// An error occurred in parsing a `VersionReq`.
357-
ReqParseError(semver::ReqParseError),
358355
/// An error occurred in parsing the semver.
359-
SemVerError(semver::SemVerError),
356+
SemVerError(semver::Error),
360357
/// The pre-release tag is unknown.
361-
UnknownPreReleaseTag(Identifier),
358+
UnknownPreReleaseTag(String),
362359
/// An error occurred in parsing a `LlvmVersion`.
363360
LlvmVersionError(LlvmVersionParseError),
364361
}
@@ -377,7 +374,6 @@ impl fmt::Display for Error {
377374
),
378375
Utf8Error(_) => write!(f, "invalid UTF-8 output from `rustc -vV`"),
379376
UnexpectedVersionFormat => write!(f, "unexpected `rustc -vV` format"),
380-
ReqParseError(ref e) => write!(f, "error parsing version requirement: {}", e),
381377
SemVerError(ref e) => write!(f, "error parsing version: {}", e),
382378
UnknownPreReleaseTag(ref i) => write!(f, "unknown pre-release tag: {}", i),
383379
LlvmVersionError(ref e) => write!(f, "error parsing LLVM's version: {}", e),
@@ -392,7 +388,6 @@ impl error::Error for Error {
392388
CommandError { .. } => None,
393389
Utf8Error(ref e) => Some(e),
394390
UnexpectedVersionFormat => None,
395-
ReqParseError(ref e) => Some(e),
396391
SemVerError(ref e) => Some(e),
397392
UnknownPreReleaseTag(_) => None,
398393
LlvmVersionError(ref e) => Some(e),
@@ -414,8 +409,7 @@ macro_rules! impl_from {
414409

415410
impl_from! {
416411
str::Utf8Error => Utf8Error,
417-
semver::SemVerError => SemVerError,
418-
semver::ReqParseError => ReqParseError,
412+
semver::Error => SemVerError,
419413
LlvmVersionParseError => LlvmVersionError,
420414
}
421415

0 commit comments

Comments
 (0)