BtcExplorer/Models/VarInt.cpp
2021-05-06 16:58:11 +03:00

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;
}