module Exomizer
(
CrunchOptions
, coEncoding
, coMaxPasses
, coMaxLen
, coMaxOffset
, coUseLiteralSequences
, coFavourSpeed
, defaultCrunchOptions
, CrunchInfo
, ciLiteralSequencesUsed
, ciNeededSafetyOffset
, ciUsedEncoding
, exomizerRaw
, exomizerRaw_
, exomizerRawBackwards
, exomizerRawBackwards_
, exomizerRawReverse
, exomizerRawReverse_
, exomizerRawBackwardsReverse
, exomizerRawBackwardsReverse_
, exomizerMem
, exomizerMem_
, exomizerMemForward
, exomizerMemForward_
, exomizerLevel_
, exomizerLevelForward_
) where
import Data.ByteString (ByteString)
import Data.Int
import Exomizer.Mem
import Exomizer.Raw
exomizerRaw :: CrunchOptions -> ByteString -> (ByteString, CrunchInfo)
{-# INLINABLE exomizerRaw #-}
exomizerRaw = rawCrunch (Forward `ReadWrite` Forward)
exomizerRaw_ :: CrunchOptions -> ByteString -> ByteString
{-# INLINABLE exomizerRaw_ #-}
exomizerRaw_ = rawCrunch_ (Forward `ReadWrite` Forward)
exomizerRawBackwards :: CrunchOptions -> ByteString -> (ByteString, CrunchInfo)
{-# INLINABLE exomizerRawBackwards #-}
exomizerRawBackwards = rawCrunch (Backwards `ReadWrite` Backwards)
exomizerRawBackwards_ :: CrunchOptions -> ByteString -> ByteString
{-# INLINABLE exomizerRawBackwards_ #-}
exomizerRawBackwards_ = rawCrunch_ (Backwards `ReadWrite` Backwards)
exomizerRawReverse :: CrunchOptions -> ByteString -> (ByteString, CrunchInfo)
{-# INLINABLE exomizerRawReverse #-}
exomizerRawReverse = rawCrunch (Backwards `ReadWrite` Forward)
exomizerRawReverse_ :: CrunchOptions -> ByteString -> ByteString
{-# INLINABLE exomizerRawReverse_ #-}
exomizerRawReverse_ = rawCrunch_ (Backwards `ReadWrite` Forward)
exomizerRawBackwardsReverse :: CrunchOptions -> ByteString -> (ByteString, CrunchInfo)
{-# INLINABLE exomizerRawBackwardsReverse #-}
exomizerRawBackwardsReverse = rawCrunch (Forward `ReadWrite` Backwards)
exomizerRawBackwardsReverse_ :: CrunchOptions -> ByteString -> ByteString
{-# INLINABLE exomizerRawBackwardsReverse_ #-}
exomizerRawBackwardsReverse_ = rawCrunch_ (Forward `ReadWrite` Backwards)
exomizerMem :: CrunchOptions -> [(Int16, ByteString)] -> (ByteString, CrunchInfo)
{-# INLINABLE exomizerMem #-}
exomizerMem co xs = memCrunch (Backwards `ReadWrite` Backwards) co (joinChunks 0 xs)
exomizerMem_ :: CrunchOptions -> [(Int16, ByteString)] -> ByteString
{-# INLINABLE exomizerMem_ #-}
exomizerMem_ co xs = memCrunch_ (Backwards `ReadWrite` Backwards) co (joinChunks 0 xs)
exomizerMemForward :: CrunchOptions -> [(Int16, ByteString)] -> (ByteString, CrunchInfo)
{-# INLINABLE exomizerMemForward #-}
exomizerMemForward co xs = memCrunch (Forward `ReadWrite` Forward) co (joinChunks 0 xs)
exomizerMemForward_ :: CrunchOptions -> [(Int16, ByteString)] -> ByteString
{-# INLINABLE exomizerMemForward_ #-}
exomizerMemForward_ co xs = memCrunch_ (Forward `ReadWrite` Forward) co (joinChunks 0 xs)
exomizerLevel_ :: CrunchOptions -> [(Int16, ByteString)] -> ByteString
{-# INLINABLE exomizerLevel_ #-}
exomizerLevel_ co xs = mconcat $ map (memCrunch_ (Forward `ReadWrite` Backwards) co) xs
exomizerLevelForward_ :: CrunchOptions -> [(Int16, ByteString)] -> ByteString
{-# INLINABLE exomizerLevelForward_ #-}
exomizerLevelForward_ co xs = mconcat $ map (memCrunch_ (Forward `ReadWrite` Forward) co) xs