-- ASCIIArmor.hs: OpenPGP (RFC4880) ASCII armor implementation -- Copyright Ⓒ 2012 Clint Adams -- This software is released under the terms of the Expat (MIT) license. -- (See the LICENSE file). module Data.Conduit.OpenPGP.Compression ( conduitCompress , conduitDecompress ) where import Codec.Encryption.OpenPGP.Compression import Codec.Encryption.OpenPGP.Types import Data.Conduit import qualified Data.Conduit.List as CL conduitCompress :: ResourceThrow m => CompressionAlgorithm -> Conduit Packet m Packet conduitCompress algo = conduitState [] push (close algo) where push state input = return $ StateProducing (input : state) [] close algo state = return $ [compressPackets algo state] conduitDecompress :: ResourceThrow m => Conduit Packet m Packet conduitDecompress = CL.concatMap decompressPacket