I have defined a tuple struct:
pub struct ChangedCell(pub bool, pub u32, pub u32);
My Assumption
ChangedCell
weighs 9 bytes (bool
: 1 byte, u32
: 4 bytes, u32
: 4 bytes)
What I Did
I returned a pointer, length
for Vec<ChangedCell>
to JavaScript:
const arr = new Uint8Array(memory.buffer, pointer, length * 9);
function getElements(n,arr) {
const isVal = arr[n * 9 + 0];
const val1 = arr.slice(n * 9 + 1, n * 9 + 5);
const val2 = arr.slice(n * 9 + 5, n * 9 + 9);
return {isVal,val1,val2}
}
Expected behaviour
isVal
to bevalid [byte]
val1
to bevalid [byte] * 4
val2
to bevalid [byte] * 4
Question
I am getting Garbage values!
How do you read something like this into JavaScript?