v2 / vlib / v / slow_tests / inout / printing_fixed_array_of_pointers.vv
47 lines · 44 sloc · 1.24 KB · 6a32c810703f4ec0c39fe18298ebe6c40acac8f1
Raw
1struct EventListener {
2mut:
3 x int
4}
5
6type PEventListener = &EventListener
7
8struct StructOfFixedArraysOfListeners {
9mut:
10 elisteners [3]EventListener
11 apelisteners [3]PEventListener
12 pelisteners [3]&EventListener
13 ppelisteners [3]&&EventListener
14 pppelisteners [3]&&&EventListener
15}
16
17fn main() {
18 mut x := StructOfFixedArraysOfListeners{}
19 x.elisteners[0].x = 123
20 x.apelisteners[0] = &x.elisteners[0]
21 x.pelisteners[0] = &x.elisteners[0]
22 //
23 x.ppelisteners[0] = &x.pelisteners[0]
24 x.pppelisteners[0] = &x.ppelisteners[0]
25 eprintln('------------------------------------')
26 eprintln(x.elisteners)
27 eprintln('- 1 level of indirection -')
28 eprintln(x.apelisteners)
29 eprintln(x.pelisteners)
30 eprintln('- 2 level of indirection -')
31 eprintln(x.ppelisteners)
32 eprintln('- 3 level of indirection -')
33 eprintln(x.pppelisteners)
34 eprintln('-----------------------------------------------------')
35 eprintln('- all:')
36 eprintln(x)
37 eprintln('-----------------------------------------------------')
38 fa := [2]EventListener{}
39 eprintln(fa)
40 pfa := [2]&EventListener{}
41 eprintln(pfa)
42 ppfa := [2]&&EventListener{}
43 eprintln(ppfa)
44 eprintln('-----------------------------------------------------')
45 dynamic_pfa := [&x.elisteners[0], &x.elisteners[1]]
46 eprintln(dynamic_pfa)
47}
48