| 1 | module main |
| 2 | |
| 3 | pub struct Tree {} |
| 4 | |
| 5 | pub type TreeBelt = map[string]fn (input &Tree, belt TreeBelt) []&Tree |
| 6 | |
| 7 | pub fn (tree &Tree) processed() TreeBelt { |
| 8 | mut blet := TreeBelt(map[string]fn (&Tree, TreeBelt) []&Tree{}) |
| 9 | blet['foo'] = fn (input &Tree, belt TreeBelt) []&Tree { |
| 10 | return [input] |
| 11 | } |
| 12 | return blet |
| 13 | } |
| 14 | |
| 15 | fn test_main() { |
| 16 | tree := Tree{} |
| 17 | ret := tree.processed() |
| 18 | assert ret.len == 1 |
| 19 | ret2 := ret['foo'](tree, ret) |
| 20 | assert ret2[0] == tree |
| 21 | } |
| 22 |