| 119 | |
| 120 | template <> |
| 121 | inline void TIntegralPacker<ui64>::PackLeaf(char* buffer, const ui64& val, size_t len) const { |
| 122 | ui64 value = val; |
| 123 | int lenmask = 0; |
| 124 | |
| 125 | for (size_t i = len - 1; i; --i) { |
| 126 | buffer[i] = (char)(value & 0xFF); |
| 127 | value >>= 8; |
| 128 | lenmask = ((lenmask >> 1) | (1 << 7)); |
| 129 | } |
| 130 | |
| 131 | buffer[0] = (char)(lenmask | value); |
| 132 | } |
| 133 | |
| 134 | extern const ui8 SkipTable[]; |
| 135 |