| 72 | uint64_t Size() const override { return m_coding.Size(); } |
| 73 | RankTable::Version GetVersion() const override { return V0; } |
| 74 | void Serialize(Writer & writer) override |
| 75 | { |
| 76 | uint8_t const version = GetVersion(); |
| 77 | size_t constexpr kVersionSize = sizeof(version); |
| 78 | writer.Write(&version, kVersionSize); |
| 79 | |
| 80 | uint64_t const padding = 0; |
| 81 | static_assert(kHeaderSize % 8 == 0); // next succinct vector should be aligned |
| 82 | writer.Write(&padding, kHeaderSize - kVersionSize); |
| 83 | |
| 84 | Freeze(m_coding, writer, "SimpleDenseCoding"); |
| 85 | } |
| 86 | |
| 87 | // Loads RankTableV0 from a raw memory region. |
| 88 | template <class TRegion> |
no test coverage detected