[][src]Struct mmrbi::Version

pub struct Version {
    pub tool_name: String,
    pub version: Version,
    pub hash: String,
    pub date: String,
}

Fields

tool_name: Stringversion: Versionhash: Stringdate: String

Implementations

impl Version[src]

pub fn parse_rusty_version(line: &str) -> Result<Self>[src]

Parse input in the format "{tool_name} {version}" or "{tool_name} {version} ({hash} {date})"

Examples

Version::parse_rusty_version("rustup 1.22.1 (b01adbbc3 2020-07-08)").unwrap();
Version::parse_rusty_version("cargo 1.47.0 (f3c7e066a 2020-08-28)").unwrap();
Version::parse_rusty_version("rustc 1.47.0 (18bf6b4f0 2020-10-07)").unwrap();

Version::parse_rusty_version("rustup 1.22.1").unwrap();
Version::parse_rusty_version("cargo 1.47.0").unwrap();
Version::parse_rusty_version("rustc 1.47.0").unwrap();

pub fn is_at_least(&self, major: u64, minor: u64, patch: u64) -> bool[src]

Check if the version is at least the given version

let cargo_1_47_0_stable     = Version::parse_rusty_version("cargo 1.47.0").unwrap();
assert_eq!(false, cargo_1_47_0_stable   .is_at_least(1, 48, 0));
assert_eq!(true,  cargo_1_47_0_stable   .is_at_least(1, 47, 0));
assert_eq!(true,  cargo_1_47_0_stable   .is_at_least(1, 46, 0));

let cargo_1_47_0_beta       = Version::parse_rusty_version("cargo 1.47.0-beta").unwrap();
assert_eq!(false, cargo_1_47_0_beta     .is_at_least(1, 48, 0));
assert_eq!(false, cargo_1_47_0_beta     .is_at_least(1, 47, 0));
assert_eq!(true,  cargo_1_47_0_beta     .is_at_least(1, 46, 0));

let cargo_1_47_0_nightly    = Version::parse_rusty_version("cargo 1.47.0-nightly").unwrap();
assert_eq!(false, cargo_1_47_0_nightly  .is_at_least(1, 48, 0));
assert_eq!(false, cargo_1_47_0_nightly  .is_at_least(1, 47, 0));
assert_eq!(true,  cargo_1_47_0_nightly  .is_at_least(1, 46, 0));

pub fn is_after(&self, major: u64, minor: u64, patch: u64) -> bool[src]

Check if the version is after the given version

let cargo_1_47_0_stable     = Version::parse_rusty_version("cargo 1.47.0").unwrap();
assert_eq!(false, cargo_1_47_0_stable   .is_after(1, 48, 0));
assert_eq!(false, cargo_1_47_0_stable   .is_after(1, 47, 0));
assert_eq!(true,  cargo_1_47_0_stable   .is_after(1, 46, 0));

let cargo_1_47_0_beta       = Version::parse_rusty_version("cargo 1.47.0-beta").unwrap();
assert_eq!(false, cargo_1_47_0_beta     .is_after(1, 48, 0));
assert_eq!(false, cargo_1_47_0_beta     .is_after(1, 47, 0));
assert_eq!(true,  cargo_1_47_0_beta     .is_after(1, 46, 0));

let cargo_1_47_0_nightly    = Version::parse_rusty_version("cargo 1.47.0-nightly").unwrap();
assert_eq!(false, cargo_1_47_0_nightly  .is_after(1, 48, 0));
assert_eq!(false, cargo_1_47_0_nightly  .is_after(1, 47, 0));
assert_eq!(true,  cargo_1_47_0_nightly  .is_after(1, 46, 0));

Trait Implementations

impl Clone for Version[src]

impl FromStr for Version[src]

type Err = Error

The associated error which can be returned from parsing.

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]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.