v2 / vlib / v / gen / js / tests / testdata / overloading.v
24 lines · 20 sloc · 350 bytes · aa14fd1b0586735a5cd442de55db004fd5dfc92b
Raw
1struct Foo {
2 x f32
3 y f32
4}
5
6pub fn (x Foo) == (y Foo) bool {
7 return x.x == y.y
8}
9
10pub fn (x Foo) < (y Foo) bool {
11 return x.x < y.x && x.y < y.y
12}
13
14pub fn (a Foo) + (b Foo) Foo {
15 return Foo{a.x + b.x, a.y + b.y}
16}
17
18fn main() {
19 x := Foo{4.0, 3.0}
20 y := Foo{1.0, 2.0}
21 println(x + y)
22 println(Foo{42.42, 0.0} == Foo{0.0, 42.42})
23 println(x > y)
24}
25