decodeIdbMeta function
Decodes a metadata record, returning null on bad magic/version/size.
Implementation
IdbMeta? decodeIdbMeta(Uint8List bytes) {
if (bytes.length < _metaBytes) return null;
final data = ByteData.sublistView(bytes);
if (data.getUint32(0, Endian.little) != _metaMagic) return null;
if (data.getUint32(4, Endian.little) != _metaVersion) return null;
final chunkSize = data.getUint32(8, Endian.little);
if (chunkSize < kIdbMinChunkSize || chunkSize > kIdbMaxChunkSize) {
return null;
}
final lo = data.getUint32(12, Endian.little);
final hi = data.getUint32(16, Endian.little);
return (logicalLength: hi * 0x100000000 + lo, chunkSize: chunkSize);
}