{-# LANGUAGE RankNTypes #-}
module Pipes.GZip (
decompress
, decompress'
, compress
, Pipes.Zlib.CompressionLevel
, Pipes.Zlib.defaultCompression
, Pipes.Zlib.noCompression
, Pipes.Zlib.bestSpeed
, Pipes.Zlib.bestCompression
, Pipes.Zlib.compressionLevel
) where
import qualified Data.Streaming.Zlib as Zlib
import qualified Data.ByteString as B
import Pipes
import qualified Pipes.Zlib
decompress
:: MonadIO m
=> Proxy x' x () B.ByteString m r
-> Proxy x' x () B.ByteString m r
decompress = Pipes.Zlib.decompress gzWindowBits
{-# INLINABLE decompress #-}
decompress'
:: MonadIO m
=> Producer B.ByteString m r
-> Producer B.ByteString m (Either (Producer B.ByteString m r) r)
decompress' = Pipes.Zlib.decompress' gzWindowBits
{-# INLINABLE decompress' #-}
compress
:: MonadIO m
=> Pipes.Zlib.CompressionLevel
-> Proxy x' x () B.ByteString m r
-> Proxy x' x () B.ByteString m r
compress clevel = Pipes.Zlib.compress clevel gzWindowBits
{-# INLINABLE compress #-}
gzWindowBits :: Zlib.WindowBits
gzWindowBits = Zlib.WindowBits 31