deserialize static method

ComplexStruct deserialize(
  1. ByteBuffer buffer
)

Deserializes a ComplexStruct from a ByteBuffer.

  • buffer: The ByteBuffer containing the serialized data. Returns a ComplexStruct 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;
}