32 lines
640 B
V
32 lines
640 B
V
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')
|
|
}
|