20 lines
538 B
C++
20 lines
538 B
C++
#include "VarInt.h"
|
|
|
|
VarInt::VarInt(const std::byte *data) {
|
|
auto pByte = reinterpret_cast<const uint8_t*>(data);
|
|
switch (*pByte) {
|
|
case 0xfd: _value = *((uint16_t*)(pByte + 1)); _size = 2 + 1; break;
|
|
case 0xfe: _value = *((uint32_t*)(pByte + 1)); _size = 4 + 1; break;
|
|
case 0xff: _value = *((uint64_t*)(pByte + 1)); _size = 8 + 1; break;
|
|
default: _value = *pByte; _size = 1; break;
|
|
}
|
|
}
|
|
|
|
uint64_t VarInt::value() const {
|
|
return _value;
|
|
}
|
|
|
|
uint8_t VarInt::size() const {
|
|
return _size;
|
|
}
|