Struct version_check::Version [−][src]
Version number: major.minor.patch
, ignoring release channel.
Implementations
impl Version
[src]
pub fn read() -> Option<Version>
[src]
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.") };
pub fn parse(version: &str) -> Option<Version>
[src]
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());
pub fn from_mmp(major: u16, minor: u16, patch: u16) -> Version
[src]
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"));
pub fn to_mmp(&self) -> (u16, u16, u16)
[src]
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));
pub fn at_least(&self, version: &str) -> bool
[src]
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"));
pub fn at_most(&self, version: &str) -> bool
[src]
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"));
pub fn exactly(&self, version: &str) -> bool
[src]
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"));
Trait Implementations
impl Clone for Version
[src]
impl Copy for Version
[src]
impl Debug for Version
[src]
impl Display for Version
[src]
impl Eq for Version
[src]
impl Ord for Version
[src]
fn cmp(&self, other: &Version) -> Ordering
[src]
#[must_use]pub fn max(self, other: Self) -> Self
1.21.0[src]
#[must_use]pub fn min(self, other: Self) -> Self
1.21.0[src]
#[must_use]pub fn clamp(self, min: Self, max: Self) -> Self
1.50.0[src]
impl PartialEq<Version> for Version
[src]
impl PartialOrd<Version> for Version
[src]
fn partial_cmp(&self, other: &Version) -> Option<Ordering>
[src]
#[must_use]pub fn lt(&self, other: &Rhs) -> bool
1.0.0[src]
#[must_use]pub fn le(&self, other: &Rhs) -> bool
1.0.0[src]
#[must_use]pub fn gt(&self, other: &Rhs) -> bool
1.0.0[src]
#[must_use]pub fn ge(&self, other: &Rhs) -> bool
1.0.0[src]
impl StructuralEq for Version
[src]
impl StructuralPartialEq for Version
[src]
Auto Trait Implementations
impl RefUnwindSafe for Version
impl Send for Version
impl Sync for Version
impl Unpin for Version
impl UnwindSafe for Version
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
impl<T> ToString for T where
T: Display + ?Sized,
[src]
T: Display + ?Sized,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,