| 1 | struct EventListener { |
| 2 | mut: |
| 3 | x int |
| 4 | } |
| 5 | |
| 6 | type PEventListener = &EventListener |
| 7 | |
| 8 | struct StructOfFixedArraysOfListeners { |
| 9 | mut: |
| 10 | elisteners [3]EventListener |
| 11 | apelisteners [3]PEventListener |
| 12 | pelisteners [3]&EventListener |
| 13 | ppelisteners [3]&&EventListener |
| 14 | pppelisteners [3]&&&EventListener |
| 15 | } |
| 16 | |
| 17 | fn 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 | |