3#include <StormByte/buffer/consumer.hxx>
4#include <StormByte/crypto/algorithm.hxx>
5#include <StormByte/crypto/exception.hxx>
6#include <StormByte/expected.hxx>
14namespace StormByte::Crypto {
27 explicit Compressor(
const Algorithm::Compress& algorithm)
noexcept;
66 Expected<std::
string,
Exception> Compress(const std::
string& input) const noexcept;
74 Expected<Buffer::Simple,
Exception> Compress(const Buffer::Simple& buffer) const noexcept;
82 Buffer::Consumer Compress(const Buffer::Consumer consumer) const noexcept;
90 Expected<std::
string,
Exception> Decompress(const std::
string& input) const noexcept;
98 Expected<Buffer::Simple,
Exception> Decompress(const Buffer::Simple& buffer) const noexcept;
106 Buffer::Consumer Decompress(const Buffer::Consumer consumer) const noexcept;
A class for managing data compression and decompression.
Definition compressor.hxx:21
Compressor(const Algorithm::Compress &algorithm) noexcept
Initializes a Compressor instance with the specified compression algorithm.
Compressor(Compressor &&compressor) noexcept=default
Move constructor for the Compressor class.
Compressor(const Compressor &compressor)=default
Copy constructor for the Compressor class.
~Compressor() noexcept=default
Destructor for the Compressor class.
A class representing an exception in the crypto module.
Definition exception.hxx:15
The namespace containing cryptographic algorithms.