vxx2 / vlib / v / tests / interfaces / interface_method_with_struct_embed_test.v
35 lines · 26 sloc · 414 bytes · 6488041a749df9762348d019c4223908c476f2e2
Raw
1struct Foo {
2 x int
3}
4
5fn (f Foo) get() int {
6 return f.x
7}
8
9struct Bar {
10 Foo
11}
12
13interface Getter {
14 get() int
15}
16
17fn test_interface_method_with_struct_embed() {
18 mut getter := []Getter{}
19
20 foo := Foo{22}
21 getter << foo
22
23 bar := Bar{Foo{11}}
24 getter << bar
25
26 assert getter.len == 2
27
28 println(foo)
29 println(getter[0])
30 assert getter[0].get() == 22
31
32 println(bar)
33 println(getter[1])
34 assert getter[1].get() == 11
35}
36