time: use operator overloading (#7882)
parent
ad8177ef2e
commit
7c290a7fe8
|
@ -1,23 +1,23 @@
|
||||||
module time
|
module time
|
||||||
|
|
||||||
// eq returns true if provided time is equal to time
|
// operator `==` returns true if provided time is equal to time
|
||||||
[inline]
|
[inline]
|
||||||
pub fn (t1 Time) eq(t2 Time) bool {
|
pub fn (t1 Time) == (t2 Time) bool {
|
||||||
if t1.unix == t2.unix && t1.microsecond == t2.microsecond {
|
if t1.unix == t2.unix && t1.microsecond == t2.microsecond {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
// ne returns true if provided time is not equal to time
|
// operator `!=` returns true if provided time is not equal to time
|
||||||
[inline]
|
[inline]
|
||||||
pub fn (t1 Time) ne(t2 Time) bool {
|
pub fn (t1 Time) != (t2 Time) bool {
|
||||||
return !t1.eq(t2)
|
return !(t1 == t2)
|
||||||
}
|
}
|
||||||
|
|
||||||
// lt returns true if provided time is less than time
|
// operator `<` returns true if provided time is less than time
|
||||||
[inline]
|
[inline]
|
||||||
pub fn (t1 Time) lt(t2 Time) bool {
|
pub fn (t1 Time) < (t2 Time) bool {
|
||||||
if t1.unix < t2.unix || (t1.unix == t2.unix && t1.microsecond < t2.microsecond) {
|
if t1.unix < t2.unix || (t1.unix == t2.unix && t1.microsecond < t2.microsecond) {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
@ -27,12 +27,12 @@ pub fn (t1 Time) lt(t2 Time) bool {
|
||||||
// le returns true if provided time is less or equal to time
|
// le returns true if provided time is less or equal to time
|
||||||
[inline]
|
[inline]
|
||||||
pub fn (t1 Time) le(t2 Time) bool {
|
pub fn (t1 Time) le(t2 Time) bool {
|
||||||
return t1.lt(t2) || t1.eq(t2)
|
return t1 < t2 || t1 == t2
|
||||||
}
|
}
|
||||||
|
|
||||||
// gt returns true if provided time is greater than time
|
// operator `>` returns true if provided time is greater than time
|
||||||
[inline]
|
[inline]
|
||||||
pub fn (t1 Time) gt(t2 Time) bool {
|
pub fn (t1 Time) > (t2 Time) bool {
|
||||||
if t1.unix > t2.unix || (t1.unix == t2.unix && t1.microsecond > t2.microsecond) {
|
if t1.unix > t2.unix || (t1.unix == t2.unix && t1.microsecond > t2.microsecond) {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
@ -42,7 +42,7 @@ pub fn (t1 Time) gt(t2 Time) bool {
|
||||||
// ge returns true if provided time is greater or equal to time
|
// ge returns true if provided time is greater or equal to time
|
||||||
[inline]
|
[inline]
|
||||||
pub fn (t1 Time) ge(t2 Time) bool {
|
pub fn (t1 Time) ge(t2 Time) bool {
|
||||||
return t1.gt(t2) || t1.eq(t2)
|
return t1 > t2 || t1 == t2
|
||||||
}
|
}
|
||||||
|
|
||||||
// Time subtract using eperator overloading
|
// Time subtract using eperator overloading
|
||||||
|
|
|
@ -3,7 +3,7 @@ module time
|
||||||
fn assert_greater_time(ms int, t1 Time) {
|
fn assert_greater_time(ms int, t1 Time) {
|
||||||
sleep_ms(ms)
|
sleep_ms(ms)
|
||||||
t2 := now()
|
t2 := now()
|
||||||
assert t2.gt(t1)
|
assert t2 > t1
|
||||||
}
|
}
|
||||||
|
|
||||||
// Tests the now in all platform and the gt operator function with at least ms resolution
|
// Tests the now in all platform and the gt operator function with at least ms resolution
|
||||||
|
@ -50,7 +50,7 @@ fn test_time1_should_be_same_as_time2() {
|
||||||
second: 3
|
second: 3
|
||||||
microsecond: 100
|
microsecond: 100
|
||||||
})
|
})
|
||||||
assert t1.eq(t2)
|
assert t1 == t2
|
||||||
}
|
}
|
||||||
|
|
||||||
fn test_time1_should_not_be_same_as_time2() {
|
fn test_time1_should_not_be_same_as_time2() {
|
||||||
|
@ -92,8 +92,8 @@ fn test_time1_should_not_be_same_as_time2() {
|
||||||
second: 4
|
second: 4
|
||||||
microsecond: 0
|
microsecond: 0
|
||||||
})
|
})
|
||||||
assert t1.ne(t2)
|
assert t1 != t2
|
||||||
assert t3.ne(t4)
|
assert t3 != t4
|
||||||
}
|
}
|
||||||
|
|
||||||
fn test_time1_should_be_greater_than_time2() {
|
fn test_time1_should_be_greater_than_time2() {
|
||||||
|
@ -135,8 +135,8 @@ fn test_time1_should_be_greater_than_time2() {
|
||||||
second: 4
|
second: 4
|
||||||
microsecond: 0
|
microsecond: 0
|
||||||
})
|
})
|
||||||
assert t1.gt(t2)
|
assert t1 > t2
|
||||||
assert t3.gt(t4)
|
assert t3 > t4
|
||||||
}
|
}
|
||||||
|
|
||||||
fn test_time2_should_be_less_than_time1() {
|
fn test_time2_should_be_less_than_time1() {
|
||||||
|
@ -178,8 +178,8 @@ fn test_time2_should_be_less_than_time1() {
|
||||||
second: 2
|
second: 2
|
||||||
microsecond: 0
|
microsecond: 0
|
||||||
})
|
})
|
||||||
assert t2.lt(t1)
|
assert t2 < t1
|
||||||
assert t4.lt(t3)
|
assert t4 < t3
|
||||||
}
|
}
|
||||||
|
|
||||||
fn test_time1_should_be_greater_or_equal_to_time2_when_gt() {
|
fn test_time1_should_be_greater_or_equal_to_time2_when_gt() {
|
||||||
|
@ -365,7 +365,7 @@ fn test_time2_copied_from_time1_should_be_equal() {
|
||||||
microsecond: 100
|
microsecond: 100
|
||||||
})
|
})
|
||||||
t2 := new_time(t1)
|
t2 := new_time(t1)
|
||||||
assert t2.eq(t1)
|
assert t2 == t1
|
||||||
}
|
}
|
||||||
|
|
||||||
fn test_subtract() {
|
fn test_subtract() {
|
||||||
|
|
Loading…
Reference in New Issue