module multiarray union SoA { nil nil = unsafe { nil } int int bool bool } fn test_basics() { mut arr := MultiArray.new(0, 10, SoA{}) // test: add an int arr.add('int' , SoA{ int: 42 }) arr.add('int' , SoA{ int: 43 }) arr.add('int' , SoA{ int: 44 }) arr.add('bool', SoA{ bool: true }) arr.add('nil' , SoA{}) arr.add('nil' , SoA{}) arr.add('nil' , SoA{}) arr.add('nil' , SoA{}) it := arr.iter() for item in it { println('Iterating over MultiArray[${item.tag}]:') if item.tag == 'int' { println('${item.tag}s > ${unsafe{item.data.int}}') } } println('Created MultiArray with len: $arr.len, cap: $arr.cap') }