decodeIdbMeta function

IdbMeta? decodeIdbMeta(
  1. Uint8List bytes
)

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);
}