pipes-zlib-0.4.1: src/Pipes/GZip.hs
{-# LANGUAGE RankNTypes #-}
-- | This module exports utilities to compress and decompress GZip @pipes@
-- streams.
module Pipes.GZip (
-- * Streams
decompress
, compress
-- * Compression level
-- $ccz-re-export
, ZC.defaultCompression
, ZC.noCompression
, ZC.bestSpeed
, ZC.bestCompression
, ZC.compressionLevel
) where
import qualified Codec.Compression.Zlib as ZC
import qualified Data.ByteString as B
import Pipes
import qualified Pipes.Zlib
--------------------------------------------------------------------------------
-- | Decompress bytes flowing from a 'Producer'.
decompress
:: MonadIO m
=> Producer' B.ByteString m r -- ^ Compressed stream
-> Producer' B.ByteString m r -- ^ Decompressed stream
decompress = Pipes.Zlib.decompress (ZC.WindowBits 31)
{-# INLINABLE decompress #-}
-- | Compress bytes flowing from a 'Producer'.
compress
:: MonadIO m
=> ZC.CompressionLevel
-> Producer' B.ByteString m r -- ^ Decompressed stream
-> Producer' B.ByteString m r -- ^ Compressed stream
compress clevel = Pipes.Zlib.compress clevel (ZC.WindowBits 31)
{-# INLINABLE compress #-}