time: use operator overloading (#7882)

pull/7887/head
Swastik Baranwal 2021-01-05 16:13:34 +05:30 committed by GitHub
parent ad8177ef2e
commit 7c290a7fe8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 20 additions and 20 deletions

View File

@ -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

View File

@ -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() {