#pragma once #include #include "typedefs.hpp" namespace compression { enum class Method { NONE, EXTRLE8, EXTRLE16, GZIP }; /// @brief Compress buffer /// @param src source buffer /// @param srclen length of the source buffer /// @param len (out argument) length of result buffer /// @param method compression method /// @return compressed bytes array /// @throws std::invalid_argument if compression method is NONE std::unique_ptr compress( const ubyte* src, size_t srclen, size_t& len, Method method ); /// @brief Decompress buffer /// @param src compressed buffer /// @param srclen length of compressed buffer /// @param dstlen max expected length of source buffer /// @return decompressed bytes array std::unique_ptr decompress( const ubyte* src, size_t srclen, size_t dstlen, Method method); }