#pragma once #include "ref.hh" #include "types.hh" #include "serialise.hh" #include namespace nix { struct CompressionSink : BufferedSink, FinishSink { using BufferedSink::operator (); using BufferedSink::write; using FinishSink::finish; }; ref decompress(const std::string & method, const std::string & in); std::unique_ptr makeDecompressionSink(const std::string & method, Sink & nextSink); ref compress(const std::string & method, const std::string & in, const bool parallel = false); ref makeCompressionSink(const std::string & method, Sink & nextSink, const bool parallel = false); MakeError(UnknownCompressionMethod, Error); MakeError(CompressionError, Error); }