diff --git a/modules/rntuple.mjs b/modules/rntuple.mjs index 1ca9570f7..a4b5a97f3 100644 --- a/modules/rntuple.mjs +++ b/modules/rntuple.mjs @@ -110,7 +110,21 @@ class RBufferReader { } - +// Envelope Types +// TODO: Define usage logic for envelope types in future +// const kEnvelopeTypeHeader = 0x01, +// kEnvelopeTypeFooter = 0x02, +// kEnvelopeTypePageList = 0x03, + +// Field Flags +const kFlagRepetitiveField = 0x01, + kFlagProjectedField = 0x02, + kFlagHasTypeChecksum = 0x04, + +// Column Flags + kFlagDeferredColumn = 0x01, + kFlagHasValueRange = 0x02; + class RNTupleDescriptorBuilder { deserializeHeader(header_blob) { @@ -246,9 +260,15 @@ class RNTupleDescriptorBuilder { sourceFieldId = null, checksum = null; - if (flags & 0x1) arraySize = reader.readU64(); - if (flags & 0x2) sourceFieldId = reader.readU32(); - if (flags & 0x4) checksum = reader.readU32(); + if (flags & kFlagRepetitiveField) + arraySize = reader.readU64(); + + if (flags & kFlagProjectedField) + sourceFieldId = reader.readU32(); + + if (flags & kFlagHasTypeChecksum) + checksum = reader.readU32(); + fieldDescriptors.push({ fieldVersion, @@ -289,8 +309,11 @@ class RNTupleDescriptorBuilder { let firstElementIndex = null, minValue = null, maxValue = null; - if (flags & 0x1) firstElementIndex = reader.readU64(); - if (flags & 0x2) { + + if (flags & kFlagDeferredColumn) + firstElementIndex = reader.readU64(); + + if (flags & kFlagHasValueRange) { minValue = reader.readF64(); maxValue = reader.readF64(); } @@ -307,7 +330,7 @@ class RNTupleDescriptorBuilder { maxValue }; column.isDeferred = function() { - return (this.flags & 0x01) !== 0; + return (this.flags & RNTupleDescriptorBuilder.kFlagDeferredColumn) !== 0; }; column.isSuppressed = function() { return this.firstElementIndex !== null && this.firstElementIndex < 0;