89 static_assert(
sizeof(
Wdc1Header) == 84 && std::is_trivially_copyable_v<Wdc1Header>);
115 static_assert(
sizeof(
Wdc3Header) == 72 && std::is_trivially_copyable_v<Wdc3Header>);
125 static_assert(
sizeof(Wdc5HeaderPrefix) == 132 && std::is_trivially_copyable_v<Wdc5HeaderPrefix>);
140 static_assert(
sizeof(
Wdc3SectionHeader) == 40 && std::is_trivially_copyable_v<Wdc3SectionHeader>);
178 static_assert(
sizeof(
WdcFieldStorage) == 24 && std::is_trivially_copyable_v<WdcFieldStorage>);
FourCC chunk identifiers: compile-time conversion of the four-letter codes to the host integers chunk...
WdcCompression
How a column is packed (field_storage_info.storageType).
@ Bitpacked
Bit-addressed unsigned value (signed in WDC1 when the entry's flags word carries bit 0x01).
@ None
Stored inline at a byte offset, fieldSizeBits wide.
@ BitpackedSigned
Bit-addressed signed value, sign-extended (WDC2+ only; WDC1 spells it Bitpacked + flags 0x01).
@ CommonData
Sparse per-id override table; default when an id is absent.
@ PalletArray
Bit-addressed index into palletData (array per slot).
@ Pallet
Bit-addressed index into palletData (one value per slot).
constexpr bool isWdcMagic(std::uint32_t magic)
Whether magic names a format of the WDC family this codec speaks.
constexpr std::uint32_t Wdc3Magic
The WDC3 magic as memcpy'd off the file front (the bytes "WDC3").
constexpr std::uint32_t Wdc4Magic
The WDC4 magic as memcpy'd off the file front (the bytes "WDC4").
WdcFlags
WDC header flag bits (shared by the whole family).
@ WdcFlagSparse
Offset-map layout + inline null-terminated strings.
@ WdcFlagNoninlineId
The id lives in the idList, not the record.
@ WdcFlagSecondary
Secondary-key data; in WDC4+ also reorders the sparse id list ahead of the relationship block.
constexpr std::uint32_t Wdc1Magic
The WDC1 magic as memcpy'd off the file front (the bytes "WDC1").
constexpr std::uint32_t Wdc5Magic
The WDC5 magic as memcpy'd off the file front (the bytes "WDC5").
The 24-byte field_storage_info entry: how one column is stored.
std::uint32_t val1
bitpacked/pallet: offset bits; common: default value.
WdcCompression storageType
std::uint32_t val3
bitpacked: flags (0x01 = signed, WDC1); pallet-array: element count.
std::uint32_t val2
bitpacked/pallet: size bits.
std::uint16_t fieldOffsetBits
Bit offset of the field within a record.
std::uint32_t additionalDataSize
Bytes this field owns in pallet/common blocks.
std::uint16_t fieldSizeBits
Field width in bits (whole array for arrays).
The 4-byte fieldStructure entry: (32 - size) / 8 is the field's storage byte width,...