pub struct Version(/* private fields */);
Expand description
Version number: major.minor.patch
, ignoring release channel.
Implementations§
Source§impl Version
impl Version
Sourcepub fn read() -> Option<Version>
pub fn read() -> Option<Version>
Reads the version of the running compiler. If it cannot be determined
(see the top-level documentation), returns None
.
§Example
use version_check::Version;
match Version::read() {
Some(d) => format!("Version is: {}", d),
None => format!("Failed to read the version.")
};
Sourcepub fn parse(version: &str) -> Option<Version>
pub fn parse(version: &str) -> Option<Version>
Parse a Rust release version (of the form
major[.minor[.patch[-channel]]]
), ignoring the release channel, if
any. Returns None
if version
is not a valid Rust version string.
§Example
use version_check::Version;
let version = Version::parse("1.18.0").unwrap();
assert!(version.exactly("1.18.0"));
let version = Version::parse("1.20.0-nightly").unwrap();
assert!(version.exactly("1.20.0"));
assert!(version.exactly("1.20.0-beta"));
let version = Version::parse("1.3").unwrap();
assert!(version.exactly("1.3.0"));
let version = Version::parse("1").unwrap();
assert!(version.exactly("1.0.0"));
assert!(Version::parse("one.two.three").is_none());
assert!(Version::parse("1.65536.2").is_none());
assert!(Version::parse("1. 2").is_none());
assert!(Version::parse("").is_none());
assert!(Version::parse("1.").is_none());
assert!(Version::parse("1.2.3.4").is_none());
Sourcepub fn from_mmp(major: u16, minor: u16, patch: u16) -> Version
pub fn from_mmp(major: u16, minor: u16, patch: u16) -> Version
Creates a Version
from (major, minor, patch)
version components.
§Example
use version_check::Version;
assert!(Version::from_mmp(1, 35, 0).exactly("1.35.0"));
assert!(Version::from_mmp(1, 33, 0).exactly("1.33.0"));
assert!(Version::from_mmp(1, 35, 1).exactly("1.35.1"));
assert!(Version::from_mmp(1, 13, 2).exactly("1.13.2"));
Sourcepub fn to_mmp(&self) -> (u16, u16, u16)
pub fn to_mmp(&self) -> (u16, u16, u16)
Returns the (major, minor, patch)
version components of self
.
§Example
use version_check::Version;
assert_eq!(Version::parse("1.35.0").unwrap().to_mmp(), (1, 35, 0));
assert_eq!(Version::parse("1.33.0").unwrap().to_mmp(), (1, 33, 0));
assert_eq!(Version::parse("1.35.1").unwrap().to_mmp(), (1, 35, 1));
assert_eq!(Version::parse("1.13.2").unwrap().to_mmp(), (1, 13, 2));
Sourcepub fn at_least(&self, version: &str) -> bool
pub fn at_least(&self, version: &str) -> bool
Returns true
if self
is greater than or equal to version
.
If version
is greater than self
, or if version
is not a valid Rust
version string, returns false
.
§Example
use version_check::Version;
let version = Version::parse("1.35.0").unwrap();
assert!(version.at_least("1.33.0"));
assert!(version.at_least("1.35.0"));
assert!(version.at_least("1.13.2"));
assert!(!version.at_least("1.35.1"));
assert!(!version.at_least("1.55.0"));
let version = Version::parse("1.12.5").unwrap();
assert!(version.at_least("1.12.0"));
assert!(!version.at_least("1.35.0"));
Sourcepub fn at_most(&self, version: &str) -> bool
pub fn at_most(&self, version: &str) -> bool
Returns true
if self
is less than or equal to version
.
If version
is less than self
, or if version
is not a valid Rust
version string, returns false
.
§Example
use version_check::Version;
let version = Version::parse("1.35.0").unwrap();
assert!(version.at_most("1.35.1"));
assert!(version.at_most("1.55.0"));
assert!(version.at_most("1.35.0"));
assert!(!version.at_most("1.33.0"));
assert!(!version.at_most("1.13.2"));
Sourcepub fn exactly(&self, version: &str) -> bool
pub fn exactly(&self, version: &str) -> bool
Returns true
if self
is exactly equal to version
.
If version
is not equal to self
, or if version
is not a valid Rust
version string, returns false
.
§Example
use version_check::Version;
let version = Version::parse("1.35.0").unwrap();
assert!(version.exactly("1.35.0"));
assert!(!version.exactly("1.33.0"));
assert!(!version.exactly("1.35.1"));
assert!(!version.exactly("1.13.2"));