mirror of
https://github.com/vlang/v.git
synced 2025-09-13 14:32:26 +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 {
|
||||
return match c.op {
|
||||
.gt { ver.gt(c.ver) }
|
||||
.lt { ver.lt(c.ver) }
|
||||
.ge { ver.ge(c.ver) }
|
||||
.le { ver.le(c.ver) }
|
||||
.eq { ver.eq(c.ver) }
|
||||
.gt { ver > c.ver }
|
||||
.lt { ver < c.ver }
|
||||
.ge { ver >= c.ver }
|
||||
.le { ver <= 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`.
|
||||
@[deprecated: 'use v1 == v2 instead']
|
||||
pub fn (v1 Version) eq(v2 Version) bool {
|
||||
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`.
|
||||
@[deprecated: 'use v1 > v2 instead']
|
||||
pub fn (v1 Version) gt(v2 Version) bool {
|
||||
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`.
|
||||
@[deprecated: 'use v1 < v2 instead']
|
||||
pub fn (v1 Version) lt(v2 Version) bool {
|
||||
return compare_lt(v1, 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 {
|
||||
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 {
|
||||
return compare_le(v1, v2)
|
||||
}
|
||||
|
|
|
@ -118,26 +118,26 @@ fn test_compare() {
|
|||
patch := semver.build(1, 0, 1)
|
||||
minor := semver.build(1, 2, 3)
|
||||
major := semver.build(2, 0, 0)
|
||||
assert first.le(first)
|
||||
assert first.ge(first)
|
||||
assert !first.lt(first)
|
||||
assert !first.gt(first)
|
||||
assert patch.ge(first)
|
||||
assert first.le(patch)
|
||||
assert !first.ge(patch)
|
||||
assert !patch.le(first)
|
||||
assert patch.gt(first)
|
||||
assert first.lt(patch)
|
||||
assert !first.gt(patch)
|
||||
assert !patch.lt(first)
|
||||
assert minor.gt(patch)
|
||||
assert patch.lt(minor)
|
||||
assert !patch.gt(minor)
|
||||
assert !minor.lt(patch)
|
||||
assert major.gt(minor)
|
||||
assert minor.lt(major)
|
||||
assert !minor.gt(major)
|
||||
assert !major.lt(minor)
|
||||
assert first <= first
|
||||
assert first >= first
|
||||
assert !(first < first)
|
||||
assert !(first > first)
|
||||
assert patch > first
|
||||
assert first <= patch
|
||||
assert !(first >= patch)
|
||||
assert !(patch <= first)
|
||||
assert patch > first
|
||||
assert first < patch
|
||||
assert !(first > patch)
|
||||
assert !(patch < first)
|
||||
assert minor > patch
|
||||
assert patch < minor
|
||||
assert !(patch > minor)
|
||||
assert !(minor < patch)
|
||||
assert major > minor
|
||||
assert minor < major
|
||||
assert !(minor > major)
|
||||
assert !(major < minor)
|
||||
}
|
||||
|
||||
fn test_satisfies() {
|
||||
|
|
|
@ -162,13 +162,13 @@ fn (mut pc PkgConfig) resolve(pkgname string) !string {
|
|||
pub fn atleast(v string) bool {
|
||||
v0 := semver.from(pkgconfig.version) 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 {
|
||||
v0 := semver.from(pc.version) 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 {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue