rio-0.1.10.0: src/RIO/ByteString/Lazy.hs
{-# LANGUAGE NoImplicitPrelude #-}
-- | Lazy @ByteString@. Import as:
--
-- > import qualified RIO.ByteString.Lazy as BL
--
-- This module does not export any partial functions. For those, see
-- "RIO.ByteString.Lazy.Partial"
module RIO.ByteString.Lazy
(
-- * The @ByteString@ type
Data.ByteString.Lazy.ByteString
-- * Introducing and eliminating 'ByteString's
, Data.ByteString.Lazy.empty
, Data.ByteString.Lazy.singleton
, Data.ByteString.Lazy.pack
, Data.ByteString.Lazy.unpack
, Data.ByteString.Lazy.fromStrict
, Data.ByteString.Lazy.toStrict
, Data.ByteString.Lazy.fromChunks
, Data.ByteString.Lazy.toChunks
, Data.ByteString.Lazy.foldrChunks
, Data.ByteString.Lazy.foldlChunks
-- * Basic interface
, Data.ByteString.Lazy.cons
, Data.ByteString.Lazy.cons'
, Data.ByteString.Lazy.snoc
, Data.ByteString.Lazy.append
, Data.ByteString.Lazy.uncons
, Data.ByteString.Lazy.unsnoc
, Data.ByteString.Lazy.null
, Data.ByteString.Lazy.length
-- * Transforming ByteStrings
, Data.ByteString.Lazy.map
, Data.ByteString.Lazy.reverse
, Data.ByteString.Lazy.intersperse
, Data.ByteString.Lazy.intercalate
, Data.ByteString.Lazy.transpose
-- * Reducing 'ByteString's (folds)
, Data.ByteString.Lazy.foldl
, Data.ByteString.Lazy.foldl'
, Data.ByteString.Lazy.foldr
-- ** Special folds
, Data.ByteString.Lazy.concat
, Data.ByteString.Lazy.concatMap
, Data.ByteString.Lazy.any
, Data.ByteString.Lazy.all
-- * Building ByteStrings
-- ** Scans
, Data.ByteString.Lazy.scanl
-- ** Accumulating maps
, Data.ByteString.Lazy.mapAccumL
, Data.ByteString.Lazy.mapAccumR
-- ** Infinite ByteStrings
, Data.ByteString.Lazy.repeat
, Data.ByteString.Lazy.replicate
, Data.ByteString.Lazy.cycle
, Data.ByteString.Lazy.iterate
-- ** Unfolding ByteStrings
, Data.ByteString.Lazy.unfoldr
-- * Substrings
-- ** Breaking strings
, Data.ByteString.Lazy.take
, Data.ByteString.Lazy.drop
, Data.ByteString.Lazy.splitAt
, Data.ByteString.Lazy.takeWhile
, Data.ByteString.Lazy.dropWhile
, Data.ByteString.Lazy.span
, Data.ByteString.Lazy.break
, Data.ByteString.Lazy.group
, Data.ByteString.Lazy.groupBy
, Data.ByteString.Lazy.inits
, Data.ByteString.Lazy.tails
, Data.ByteString.Lazy.stripPrefix
, Data.ByteString.Lazy.stripSuffix
-- ** Breaking into many substrings
, Data.ByteString.Lazy.split
, Data.ByteString.Lazy.splitWith
-- * Predicates
, Data.ByteString.Lazy.isPrefixOf
, Data.ByteString.Lazy.isSuffixOf
-- * Search ByteStrings
-- ** Searching by equality
, Data.ByteString.Lazy.elem
, Data.ByteString.Lazy.notElem
-- ** Searching with a predicate
, Data.ByteString.Lazy.find
, Data.ByteString.Lazy.filter
, Data.ByteString.Lazy.partition
-- * Indexing ByteStrings
, Data.ByteString.Lazy.index
, Data.ByteString.Lazy.elemIndex
, Data.ByteString.Lazy.elemIndexEnd
, Data.ByteString.Lazy.elemIndices
, Data.ByteString.Lazy.findIndex
, Data.ByteString.Lazy.findIndices
, Data.ByteString.Lazy.count
-- * Zipping and unzipping ByteStrings
, Data.ByteString.Lazy.zip
, Data.ByteString.Lazy.zipWith
, Data.ByteString.Lazy.unzip
-- * Low level conversions
-- ** Copying ByteStrings
, Data.ByteString.Lazy.copy
-- * I\/O with 'ByteString's
-- ** Standard input and output
, getContents
, putStr
, putStrLn
, interact
-- ** Files
, readFile
, writeFile
, appendFile
-- ** I\/O with Handles
, hGetContents
, hGet
, hGetNonBlocking
, hPut
, hPutNonBlocking
, hPutStr
) where
import Data.ByteString.Lazy hiding
(
getContents
, putStr
, putStrLn
, interact
, readFile
, writeFile
, appendFile
, hGetContents
, hGet
, hGetNonBlocking
, hPut
, hPutNonBlocking
, hPutStr
)
import qualified Data.ByteString.Lazy
import qualified Data.ByteString.Lazy.Char8
import RIO
-- | Lifted 'Data.ByteString.Lazy.getContents'
getContents :: MonadIO m => m LByteString
getContents = liftIO Data.ByteString.Lazy.getContents
-- | Lifted 'Data.ByteString.Lazy.putStr'
putStr :: MonadIO m => LByteString -> m ()
putStr = liftIO . Data.ByteString.Lazy.putStr
-- | Lifted 'Data.ByteString.Lazy.putStrLn'
putStrLn :: MonadIO m => LByteString -> m ()
putStrLn = liftIO . Data.ByteString.Lazy.Char8.putStrLn
-- | Lifted 'Data.ByteString.Lazy.interact'
interact :: MonadIO m => (LByteString -> LByteString) -> m ()
interact = liftIO . Data.ByteString.Lazy.interact
-- | Lifted 'Data.ByteString.Lazy.readFile'
readFile :: MonadIO m => FilePath -> m LByteString
readFile = liftIO . Data.ByteString.Lazy.readFile
-- | Lifted 'Data.ByteString.Lazy.writeFile'
writeFile :: MonadIO m => FilePath -> LByteString -> m ()
writeFile fp contents =
liftIO $ Data.ByteString.Lazy.writeFile fp contents
-- | Lifted 'Data.ByteString.Lazy.appendFile'
appendFile :: MonadIO m => FilePath -> LByteString -> m ()
appendFile fp = liftIO . Data.ByteString.Lazy.appendFile fp
-- | Lifted 'Data.ByteString.Lazy.hGet'
hGet :: MonadIO m => Handle -> Int -> m LByteString
hGet handle' count' = liftIO $ Data.ByteString.Lazy.hGet handle' count'
-- | Lifted 'Data.ByteString.Lazy.hGetContents'
hGetContents :: MonadIO m => Handle -> m LByteString
hGetContents = liftIO . Data.ByteString.Lazy.hGetContents
-- | Lifted 'Data.ByteString.Lazy.hGetNonBlocking'
hGetNonBlocking :: MonadIO m => Handle -> Int -> m LByteString
hGetNonBlocking h = liftIO . Data.ByteString.Lazy.hGetNonBlocking h
-- | Lifted 'Data.ByteString.Lazy.hPut'
hPut :: MonadIO m => Handle -> LByteString -> m ()
hPut h = liftIO . Data.ByteString.Lazy.hPut h
-- | Lifted 'Data.ByteString.Lazy.hPutNonBlocking'
hPutNonBlocking :: MonadIO m => Handle -> LByteString -> m LByteString
hPutNonBlocking h = liftIO . Data.ByteString.Lazy.hPutNonBlocking h
-- | Lifted 'Data.ByteString.Lazy.hPutStr'
hPutStr :: MonadIO m => Handle -> LByteString -> m ()
hPutStr h = liftIO . Data.ByteString.Lazy.hPutStr h