diff options
Diffstat (limited to 'lib/compressionctx.h')
-rw-r--r-- | lib/compressionctx.h | 42 |
1 files changed, 0 insertions, 42 deletions
diff --git a/lib/compressionctx.h b/lib/compressionctx.h deleted file mode 100644 index a07686f..0000000 --- a/lib/compressionctx.h +++ /dev/null @@ -1,42 +0,0 @@ -#include <span> -#include <vector> -#include <cstdint> -#include <memory> - -#pragma once - -namespace embed -{ - -enum Compression { - None, - Zstd -}; - -class CompressionCtx -{ -public: - virtual ~CompressionCtx() = default; - [[nodiscard]] virtual std::vector<uint8_t> decompress(const std::span<const uint8_t> &entry) const = 0; -}; - -class ZstdCompressionCtx final : public CompressionCtx -{ -public: - ZstdCompressionCtx(const std::span<const uint8_t> &dictionary); - ~ZstdCompressionCtx(); - [[nodiscard]] std::vector<uint8_t> decompress(const std::span<const uint8_t> &entry) const override; -}; - -std::unique_ptr<CompressionCtx> make_compression_ctx(const Compression algo, const std::span<const uint8_t> &dict) -{ - switch(algo) - { - case None: - return nullptr; - case Zstd: - return std::make_unique<ZstdCompressionCtx>(dict); - } -} - -} // namespace embed |