mirror of
https://github.com/vlang/v.git
synced 2025-09-15 07:22:27 +03:00
semver: use operator overloading (#19935)
This commit is contained in:
parent
4b347a8881
commit
7e280a4b61
4 changed files with 43 additions and 28 deletions
|
@ -48,11 +48,11 @@ fn (set ComparatorSet) satisfies(ver Version) bool {
|
||||||
|
|
||||||
fn (c Comparator) satisfies(ver Version) bool {
|
fn (c Comparator) satisfies(ver Version) bool {
|
||||||
return match c.op {
|
return match c.op {
|
||||||
.gt { ver.gt(c.ver) }
|
.gt { ver > c.ver }
|
||||||
.lt { ver.lt(c.ver) }
|
.lt { ver < c.ver }
|
||||||
.ge { ver.ge(c.ver) }
|
.ge { ver >= c.ver }
|
||||||
.le { ver.le(c.ver) }
|
.le { ver <= c.ver }
|
||||||
.eq { ver.eq(c.ver) }
|
.eq { ver == c.ver }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -70,26 +70,41 @@ pub fn (ver Version) satisfies(input string) bool {
|
||||||
}
|
}
|
||||||
|
|
||||||
// eq returns `true` if `v1` is equal to `v2`.
|
// eq returns `true` if `v1` is equal to `v2`.
|
||||||
|
@[deprecated: 'use v1 == v2 instead']
|
||||||
pub fn (v1 Version) eq(v2 Version) bool {
|
pub fn (v1 Version) eq(v2 Version) bool {
|
||||||
return compare_eq(v1, v2)
|
return compare_eq(v1, v2)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// == checks if `v1` is equal to `v2`
|
||||||
|
pub fn (v1 Version) == (v2 Version) bool {
|
||||||
|
return compare_eq(v1, v2)
|
||||||
|
}
|
||||||
|
|
||||||
// gt returns `true` if `v1` is greater than `v2`.
|
// gt returns `true` if `v1` is greater than `v2`.
|
||||||
|
@[deprecated: 'use v1 > v2 instead']
|
||||||
pub fn (v1 Version) gt(v2 Version) bool {
|
pub fn (v1 Version) gt(v2 Version) bool {
|
||||||
return compare_gt(v1, v2)
|
return compare_gt(v1, v2)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// < checks if `v1` is less than `v2`.
|
||||||
|
pub fn (v1 Version) < (v2 Version) bool {
|
||||||
|
return compare_lt(v1, v2)
|
||||||
|
}
|
||||||
|
|
||||||
// lt returns `true` if `v1` is less than `v2`.
|
// lt returns `true` if `v1` is less than `v2`.
|
||||||
|
@[deprecated: 'use v1 < v2 instead']
|
||||||
pub fn (v1 Version) lt(v2 Version) bool {
|
pub fn (v1 Version) lt(v2 Version) bool {
|
||||||
return compare_lt(v1, v2)
|
return compare_lt(v1, v2)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ge returns `true` if `v1` is greater than or equal to `v2`.
|
// ge returns `true` if `v1` is greater than or equal to `v2`.
|
||||||
|
@[deprecated: 'use v1 >= v2 instead']
|
||||||
pub fn (v1 Version) ge(v2 Version) bool {
|
pub fn (v1 Version) ge(v2 Version) bool {
|
||||||
return compare_ge(v1, v2)
|
return compare_ge(v1, v2)
|
||||||
}
|
}
|
||||||
|
|
||||||
// le returns `true` if `v1` is less than or equal to `v2`.
|
// le returns `true` if `v1` is less than or equal to `v2`
|
||||||
|
@[deprecated: 'use v1 <= v2 instead']
|
||||||
pub fn (v1 Version) le(v2 Version) bool {
|
pub fn (v1 Version) le(v2 Version) bool {
|
||||||
return compare_le(v1, v2)
|
return compare_le(v1, v2)
|
||||||
}
|
}
|
||||||
|
|
|
@ -118,26 +118,26 @@ fn test_compare() {
|
||||||
patch := semver.build(1, 0, 1)
|
patch := semver.build(1, 0, 1)
|
||||||
minor := semver.build(1, 2, 3)
|
minor := semver.build(1, 2, 3)
|
||||||
major := semver.build(2, 0, 0)
|
major := semver.build(2, 0, 0)
|
||||||
assert first.le(first)
|
assert first <= first
|
||||||
assert first.ge(first)
|
assert first >= first
|
||||||
assert !first.lt(first)
|
assert !(first < first)
|
||||||
assert !first.gt(first)
|
assert !(first > first)
|
||||||
assert patch.ge(first)
|
assert patch > first
|
||||||
assert first.le(patch)
|
assert first <= patch
|
||||||
assert !first.ge(patch)
|
assert !(first >= patch)
|
||||||
assert !patch.le(first)
|
assert !(patch <= first)
|
||||||
assert patch.gt(first)
|
assert patch > first
|
||||||
assert first.lt(patch)
|
assert first < patch
|
||||||
assert !first.gt(patch)
|
assert !(first > patch)
|
||||||
assert !patch.lt(first)
|
assert !(patch < first)
|
||||||
assert minor.gt(patch)
|
assert minor > patch
|
||||||
assert patch.lt(minor)
|
assert patch < minor
|
||||||
assert !patch.gt(minor)
|
assert !(patch > minor)
|
||||||
assert !minor.lt(patch)
|
assert !(minor < patch)
|
||||||
assert major.gt(minor)
|
assert major > minor
|
||||||
assert minor.lt(major)
|
assert minor < major
|
||||||
assert !minor.gt(major)
|
assert !(minor > major)
|
||||||
assert !major.lt(minor)
|
assert !(major < minor)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn test_satisfies() {
|
fn test_satisfies() {
|
||||||
|
|
|
@ -162,13 +162,13 @@ fn (mut pc PkgConfig) resolve(pkgname string) !string {
|
||||||
pub fn atleast(v string) bool {
|
pub fn atleast(v string) bool {
|
||||||
v0 := semver.from(pkgconfig.version) or { return false }
|
v0 := semver.from(pkgconfig.version) or { return false }
|
||||||
v1 := semver.from(v) or { return false }
|
v1 := semver.from(v) or { return false }
|
||||||
return v0.gt(v1)
|
return v0 > v1
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn (mut pc PkgConfig) atleast(v string) bool {
|
pub fn (mut pc PkgConfig) atleast(v string) bool {
|
||||||
v0 := semver.from(pc.version) or { return false }
|
v0 := semver.from(pc.version) or { return false }
|
||||||
v1 := semver.from(v) or { return false }
|
v1 := semver.from(v) or { return false }
|
||||||
return v0.gt(v1)
|
return v0 > v1
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn (mut pc PkgConfig) extend(pcdep &PkgConfig) !string {
|
pub fn (mut pc PkgConfig) extend(pcdep &PkgConfig) !string {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue