compare_versions

Function compare_versions 

Source
pub fn compare_versions(v1: &str, v2: &str) -> Ordering
Expand description

Compares two Go versions using semantic versioning rules.

§Pseudo-version Handling

Pseudo-versions (e.g., v0.0.0-20191109021931-daa7c04131f5) are compared by their base version. For example, v1.2.4-0.20191109021931-xxx is treated as being based on v1.2.3.

§Incompatible Suffix

The +incompatible suffix is stripped before comparison.

§Returns

  • Ordering::Less if v1 < v2
  • Ordering::Equal if v1 == v2
  • Ordering::Greater if v1 > v2

§Examples

use deps_go::compare_versions;
use std::cmp::Ordering;

assert_eq!(compare_versions("v1.0.0", "v2.0.0"), Ordering::Less);
assert_eq!(compare_versions("v2.0.0+incompatible", "v2.0.0"), Ordering::Equal);