mdbx++: переименование slice::as_intXX() в slice::as_intXX_adapt() и добавление slice::as_intXX().

This commit is contained in:
Леонид Юрьев (Leonid Yuriev)
2023-11-17 23:55:37 +03:00
parent 6facd20b2b
commit d6a79a9c5f
2 changed files with 84 additions and 38 deletions

View File

@@ -492,48 +492,48 @@ bool slice::is_printable(bool disable_utf8) const noexcept {
}
#ifdef MDBX_U128_TYPE
MDBX_U128_TYPE slice::as_uint128() const {
MDBX_U128_TYPE slice::as_uint128_adapt() const {
static_assert(sizeof(MDBX_U128_TYPE) == 16, "WTF?");
if (size() == 16) {
MDBX_U128_TYPE r;
memcpy(&r, data(), sizeof(r));
return r;
} else
return as_uint64();
return as_uint64_adapt();
}
#endif /* MDBX_U128_TYPE */
uint64_t slice::as_uint64() const {
uint64_t slice::as_uint64_adapt() const {
static_assert(sizeof(uint64_t) == 8, "WTF?");
if (size() == 8) {
uint64_t r;
memcpy(&r, data(), sizeof(r));
return r;
} else
return as_uint32();
return as_uint32_adapt();
}
uint32_t slice::as_uint32() const {
uint32_t slice::as_uint32_adapt() const {
static_assert(sizeof(uint32_t) == 4, "WTF?");
if (size() == 4) {
uint32_t r;
memcpy(&r, data(), sizeof(r));
return r;
} else
return as_uint16();
return as_uint16_adapt();
}
uint16_t slice::as_uint16() const {
uint16_t slice::as_uint16_adapt() const {
static_assert(sizeof(uint16_t) == 2, "WTF?");
if (size() == 2) {
uint16_t r;
memcpy(&r, data(), sizeof(r));
return r;
} else
return as_uint8();
return as_uint8_adapt();
}
uint8_t slice::as_uint8() const {
uint8_t slice::as_uint8_adapt() const {
static_assert(sizeof(uint8_t) == 1, "WTF?");
if (size() == 1)
return *static_cast<const uint8_t *>(data());
@@ -544,48 +544,48 @@ uint8_t slice::as_uint8() const {
}
#ifdef MDBX_I128_TYPE
MDBX_I128_TYPE slice::as_int128() const {
MDBX_I128_TYPE slice::as_int128_adapt() const {
static_assert(sizeof(MDBX_I128_TYPE) == 16, "WTF?");
if (size() == 16) {
MDBX_I128_TYPE r;
memcpy(&r, data(), sizeof(r));
return r;
} else
return as_int64();
return as_int64_adapt();
}
#endif /* MDBX_I128_TYPE */
int64_t slice::as_int64() const {
int64_t slice::as_int64_adapt() const {
static_assert(sizeof(int64_t) == 8, "WTF?");
if (size() == 8) {
uint64_t r;
memcpy(&r, data(), sizeof(r));
return r;
} else
return as_int32();
return as_int32_adapt();
}
int32_t slice::as_int32() const {
int32_t slice::as_int32_adapt() const {
static_assert(sizeof(int32_t) == 4, "WTF?");
if (size() == 4) {
int32_t r;
memcpy(&r, data(), sizeof(r));
return r;
} else
return as_int16();
return as_int16_adapt();
}
int16_t slice::as_int16() const {
int16_t slice::as_int16_adapt() const {
static_assert(sizeof(int16_t) == 2, "WTF?");
if (size() == 2) {
int16_t r;
memcpy(&r, data(), sizeof(r));
return r;
} else
return as_int8();
return as_int8_adapt();
}
int8_t slice::as_int8() const {
int8_t slice::as_int8_adapt() const {
if (size() == 1)
return *static_cast<const int8_t *>(data());
else if (size() == 0)