v2 / vlib / v / tests / options / option_operator_overload_test.v
38 lines · 32 sloc · 673 bytes · 6488041a749df9762348d019c4223908c476f2e2
Raw
1import time
2
3struct SubTestTimeOptional[T] {
4 iis string
5 ext T
6}
7
8pub fn (s1 SubTestTimeOptional[T]) == (s2 SubTestTimeOptional[T]) bool {
9 return s1.iis == s2.iis
10}
11
12struct TestTimeOptional {
13 exp ?time.Time
14}
15
16fn now_optional[T]() SubTestTimeOptional[T] {
17 return SubTestTimeOptional[TestTimeOptional]{
18 iis: 'Vtest'
19 ext: TestTimeOptional{
20 exp: time.now()
21 }
22 }
23}
24
25fn now_delay_optional[T]() SubTestTimeOptional[T] {
26 return SubTestTimeOptional[T]{
27 iis: 'Vtest'
28 ext: TestTimeOptional{
29 exp: time.now().add_seconds(5)
30 }
31 }
32}
33
34fn test_main() {
35 mut t1 := now_optional[TestTimeOptional]()
36 mut t2 := now_delay_optional[TestTimeOptional]()
37 assert t1 != t2
38}
39