module Codec.Compression.Snappy.Lazy.Conduit (
    -- * Conduit interface
      decompressConduit
    , compressConduit
    ) where


import           Codec.Compression.Snappy.Lazy (compress, decompress)
import           Data.ByteString.Lazy          (ByteString)
import           Data.Conduit
import qualified Data.Conduit.List             as CL

-- | Decompress data in the Snappy format.
-- If the input is not compressed or is corrupt, an exception will be thrown.
decompressConduit :: Monad m => Conduit ByteString m ByteString
decompressConduit = CL.map decompress


-- | Compress data into the Snappy format.
compressConduit :: Monad m => Conduit ByteString m ByteString
compressConduit = CL.map compress