|
|
|
@ -6,7 +6,7 @@ use std::str::FromStr;
@@ -6,7 +6,7 @@ use std::str::FromStr;
|
|
|
|
|
|
|
|
|
|
#[derive(Debug, PartialEq, PartialOrd, Eq, Ord, Clone)] |
|
|
|
|
pub enum Version { |
|
|
|
|
Semver(semver::Version), |
|
|
|
|
Semver(node_semver::Version), |
|
|
|
|
Lts(LtsType), |
|
|
|
|
Alias(String), |
|
|
|
|
Latest, |
|
|
|
@ -18,7 +18,7 @@ fn first_letter_is_number(s: &str) -> bool {
@@ -18,7 +18,7 @@ fn first_letter_is_number(s: &str) -> bool {
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
impl Version { |
|
|
|
|
pub fn parse<S: AsRef<str>>(version_str: S) -> Result<Self, semver::Error> { |
|
|
|
|
pub fn parse<S: AsRef<str>>(version_str: S) -> Result<Self, node_semver::SemverError> { |
|
|
|
|
let lowercased = version_str.as_ref().to_lowercase(); |
|
|
|
|
if lowercased == system_version::display_name() { |
|
|
|
|
Ok(Self::Bypassed) |
|
|
|
@ -27,7 +27,7 @@ impl Version {
@@ -27,7 +27,7 @@ impl Version {
|
|
|
|
|
Ok(Self::Lts(lts_type)) |
|
|
|
|
} else if first_letter_is_number(lowercased.trim_start_matches('v')) { |
|
|
|
|
let version_plain = lowercased.trim_start_matches('v'); |
|
|
|
|
let sver = semver::Version::parse(version_plain)?; |
|
|
|
|
let sver = node_semver::Version::parse(version_plain)?; |
|
|
|
|
Ok(Self::Semver(sver)) |
|
|
|
|
} else { |
|
|
|
|
Ok(Self::Alias(lowercased)) |
|
|
|
@ -100,14 +100,14 @@ impl std::fmt::Display for Version {
@@ -100,14 +100,14 @@ impl std::fmt::Display for Version {
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
impl FromStr for Version { |
|
|
|
|
type Err = semver::Error; |
|
|
|
|
type Err = node_semver::SemverError; |
|
|
|
|
fn from_str(s: &str) -> Result<Version, Self::Err> { |
|
|
|
|
Self::parse(s) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
impl PartialEq<semver::Version> for Version { |
|
|
|
|
fn eq(&self, other: &semver::Version) -> bool { |
|
|
|
|
impl PartialEq<node_semver::Version> for Version { |
|
|
|
|
fn eq(&self, other: &node_semver::Version) -> bool { |
|
|
|
|
match self { |
|
|
|
|
Self::Bypassed | Self::Lts(_) | Self::Alias(_) | Self::Latest => false, |
|
|
|
|
Self::Semver(v) => v == other, |
|
|
|
|