unpack method
Unpacks a single value from the buffer based on the given format.
Implementation
dynamic unpack(Struct s) {
final Uint8List data = buffer.sublist(readOffset, readOffset + s.size);
advance(s);
final List<num> result = [];
if (s.format == "<f") {
result.add(nd.bytesToFloat(data));
} else if (s.format == "<h") {
result.add(nd.bytesToInt(data, signed: true));
} else if (["<H", "<HH", "<HHH"].contains(s.format)) {
for (int i = 0; i < data.length; i += 2) {
result.add(nd.bytesToInt(data.sublist(i, i + 2)));
}
} else {
throw ArgumentError("Invalid format.");
}
if (result.length == 1) {
return result[0];
}
return result;
}