From b83b405309b82dcc4fb52a076694765f9fdc7a23 Mon Sep 17 00:00:00 2001 From: momo5502 Date: Sat, 22 Mar 2025 13:08:54 +0100 Subject: [PATCH] Support std::byte in zlib --- src/common/utils/compression.cpp | 14 ++++++++++++-- src/common/utils/compression.hpp | 10 ++++++---- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/src/common/utils/compression.cpp b/src/common/utils/compression.cpp index 15cbbc04..17c6da8c 100644 --- a/src/common/utils/compression.cpp +++ b/src/common/utils/compression.cpp @@ -48,7 +48,7 @@ namespace utils::compression }; } - std::vector decompress(const std::vector& data) + std::vector decompress(const std::span data) { std::vector buffer{}; zlib_stream stream_container{}; @@ -80,7 +80,12 @@ namespace utils::compression return buffer; } - std::vector compress(const std::vector& data) + std::vector decompress(const std::span& data) + { + return decompress(std::span(reinterpret_cast(data.data()), data.size())); + } + + std::vector compress(const std::span data) { std::vector result{}; auto length = compressBound(static_cast(data.size())); @@ -95,5 +100,10 @@ namespace utils::compression result.resize(length); return result; } + + std::vector compress(const std::span data) + { + return compress(std::span(reinterpret_cast(data.data()), data.size())); + } } } diff --git a/src/common/utils/compression.hpp b/src/common/utils/compression.hpp index 36a0305c..70ded9f7 100644 --- a/src/common/utils/compression.hpp +++ b/src/common/utils/compression.hpp @@ -1,6 +1,6 @@ #pragma once -#include +#include #include #include @@ -9,7 +9,9 @@ namespace utils::compression namespace zlib { constexpr unsigned int ZCHUNK_SIZE = 16384u; - std::vector compress(const std::vector& data); - std::vector decompress(const std::vector& data); + std::vector compress(std::span data); + std::vector compress(std::span data); + std::vector decompress(std::span data); + std::vector decompress(std::span data); } -}; \ No newline at end of file +};