65 size_t Decompress(std::span<const std::byte> input, std::span<std::byte> output) {
66 size_t actual_out_nbytes_ret;
67 const libdeflate_result result =
68 libdeflate_deflate_decompress(
decompressor_, input.data(), input.size(), output.data(),
69 output.size(), &actual_out_nbytes_ret);
71 case LIBDEFLATE_SUCCESS:
73 case LIBDEFLATE_BAD_DATA:
74 throw std::runtime_error(
"Could not decompress data: bad data");
75 case LIBDEFLATE_SHORT_OUTPUT:
76 throw std::runtime_error(
"Could not decompress data: data shorter than expected");
77 case LIBDEFLATE_INSUFFICIENT_SPACE:
78 throw std::runtime_error(
"Could not decompress data: insufficient space in output buffer");
80 return actual_out_nbytes_ret;