v2 / vlib / v / fmt / tests / operator_overload_keep.vv
24 lines · 19 sloc · 306 bytes · 2144399a4ce20617a916cc284549d78f5d60ba8b
Raw
1struct Foo {
2 x int
3}
4
5fn (a Foo) + (b Foo) Foo {
6 return Foo{a.x + b.x}
7}
8
9fn (a Foo) % (b Foo) Foo {
10 return Foo{a.x % b.x}
11}
12
13struct Indexed {
14mut:
15 values []int
16}
17
18fn (i Indexed) [] (index int) int {
19 return i.values[index]
20}
21
22fn (mut i Indexed) []= (index int, value int) {
23 i.values[index] = value
24}
25