| 14 | explicit VarRecordReader(ReaderT const & reader) : m_reader(reader) {} |
| 15 | |
| 16 | std::vector<uint8_t> ReadRecord(uint64_t const pos) const |
| 17 | { |
| 18 | ReaderSource source(m_reader); |
| 19 | ASSERT_LESS(pos, source.Size(), ()); |
| 20 | source.Skip(pos); |
| 21 | uint32_t const recordSize = ReadVarUint<uint32_t>(source); |
| 22 | std::vector<uint8_t> buffer(recordSize); |
| 23 | source.Read(buffer.data(), recordSize); |
| 24 | return buffer; |
| 25 | } |
| 26 | |
| 27 | template <class FnT> |
| 28 | void ForEachRecord(FnT && fn) const |