| 423 | } |
| 424 | |
| 425 | Expected<int64_t> getIntSize(const std::string& str) { |
| 426 | if (str.size() <= 2) { |
| 427 | return {ErrorCodes::ERR_DECODE, "getIntSize failed:" + str}; |
| 428 | } |
| 429 | std::string value = str.substr(0, str.size() - 2); |
| 430 | std::string unit = str.substr(str.size() - 2, 2); |
| 431 | Expected<int64_t> size = ::tendisplus::stoll(value); |
| 432 | if (!size.ok()) { |
| 433 | return size; |
| 434 | } |
| 435 | if (unit == "kB") { |
| 436 | return size.value() * 1024; |
| 437 | } else if (unit == "mB") { |
| 438 | return size.value() * 1024 * 1024; |
| 439 | } else if (unit == "gB") { |
| 440 | return size.value() * 1024 * 1024 * 1024; |
| 441 | } |
| 442 | return {ErrorCodes::ERR_DECODE, "getIntSize failed:" + str}; |
| 443 | } |
| 444 | |
| 445 | std::string getSizeReadable(size_t size) { |
| 446 | char buf[20]; |
no test coverage detected