extern crate version_compare;
use version_compare::{CompOp, Version, VersionCompare};
fn main() {
let a = "1.2";
let b = "1.5.1";
assert_eq!(VersionCompare::compare(&a, &b).unwrap(), CompOp::Lt);
assert_eq!(
VersionCompare::compare_to(&a, &b, &CompOp::Le).unwrap(),
true
);
assert_eq!(
VersionCompare::compare_to(&a, &b, &CompOp::Gt).unwrap(),
false
);
let a_ver = Version::from(a).unwrap();
let b_ver = Version::from(b).unwrap();
assert_eq!(a_ver < b_ver, true);
assert_eq!(a_ver <= b_ver, true);
assert_eq!(a_ver > b_ver, false);
assert_eq!(a_ver != b_ver, true);
assert_eq!(a_ver.compare(&b_ver), CompOp::Lt);
assert_eq!(b_ver.compare(&a_ver), CompOp::Gt);
assert_eq!(a_ver.compare_to(&b_ver, &CompOp::Lt), true);
match a_ver.compare(&b_ver) {
CompOp::Lt => println!("Version a is less than b"),
CompOp::Eq => println!("Version a is equal to b"),
CompOp::Gt => println!("Version a is greater than b"),
_ => unreachable!(),
}
}