deserialize static method
Deserializes a ComplexStruct
from a ByteBuffer
.
buffer
: TheByteBuffer
containing the serialized data. Returns aComplexStruct
instance.
Implementation
static ComplexStruct deserialize(ByteBuffer buffer) {
final struct = ComplexStruct.create();
final data = ByteData.view(buffer);
var offset = 0;
// Read id
struct.id = data.getInt32(offset, Endian.host);
offset += sizeOf<Int32>();
// Read start point
final startBuffer = ByteData(sizeOf<Point>());
for (var i = 0; i < sizeOf<Point>(); i++) {
startBuffer.setUint8(i, data.getUint8(offset + i));
}
struct.start = Point.deserialize(startBuffer.buffer);
offset += sizeOf<Point>();
// Read end point
final endBuffer = ByteData(sizeOf<Point>());
for (var i = 0; i < sizeOf<Point>(); i++) {
endBuffer.setUint8(i, data.getUint8(offset + i));
}
struct.end = Point.deserialize(endBuffer.buffer);
offset += sizeOf<Point>();
// Read data array
for (var i = 0; i < 10; i++) {
struct.data[i] = data.getInt32(offset, Endian.host);
offset += sizeOf<Int32>();
}
return struct;
}