pub struct Version {
pub tool_name: String,
pub version: Version,
pub hash: String,
pub date: String,
}
Expand description
Parsed "rustup 1.22.1 (b01adbbc3 2020-07-08)"
, decomposed into:{ tool_name: "rustup", version: "1.22.1", hash: "b01adbbc3", date: "2020-07-08" }
Fields§
§tool_name: String
The tool name (e.g. "rustup"
)
version: Version
The semver (e.g. "1.22.1"
)
hash: String
The hash (typically a git commit, e.g. "b01adbbc3"
)
date: String
The date (typically in yyyy-mm-dd format, e.g. "2020-07-08"
)
Implementations§
Source§impl Version
impl Version
Sourcepub fn parse_rusty_version(line: &str) -> Result<Self>
pub fn parse_rusty_version(line: &str) -> Result<Self>
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();
Sourcepub fn is_at_least(&self, major: u64, minor: u64, patch: u64) -> bool
pub fn is_at_least(&self, major: u64, minor: u64, patch: u64) -> bool
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));
Sourcepub fn is_after(&self, major: u64, minor: u64, patch: u64) -> bool
pub fn is_after(&self, major: u64, minor: u64, patch: u64) -> bool
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§
Auto Trait Implementations§
impl Freeze for Version
impl RefUnwindSafe for Version
impl Send for Version
impl Sync for Version
impl Unpin for Version
impl UnwindSafe for Version
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more