{-# LANGUAGE NoImplicitPrelude #-}
module RIO.ByteString
( module Data.ByteString
, module RIO.ByteString
) where
import Data.ByteString hiding (head, last, tail, init, foldl1, foldl1', foldr1, foldr1', maximum, minimum, findSubstring, findSubstrings, packCString, packCStringLen, useAsCString, useAsCStringLen, getLine, getContents, putStr, putStrLn, interact, readFile, writeFile, appendFile, hGetLine, hGetContents, hGet, hGetSome, hGetNonBlocking, hPut, hPutNonBlocking, hPutStr, hPutStrLn, breakByte)
import qualified Data.ByteString as B
import RIO
import Foreign.C.String (CString, CStringLen)
packCString :: MonadIO m => CString -> m ByteString
packCString :: forall (m :: * -> *). MonadIO m => CString -> m ByteString
packCString = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall b c a. (b -> c) -> (a -> b) -> a -> c
. CString -> IO ByteString
B.packCString
packCStringLen :: MonadIO m => CStringLen -> m ByteString
packCStringLen :: forall (m :: * -> *). MonadIO m => CStringLen -> m ByteString
packCStringLen = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall b c a. (b -> c) -> (a -> b) -> a -> c
. CStringLen -> IO ByteString
B.packCStringLen
useAsCString :: MonadUnliftIO m => ByteString -> (CString -> m a) -> m a
useAsCString :: forall (m :: * -> *) a.
MonadUnliftIO m =>
ByteString -> (CString -> m a) -> m a
useAsCString ByteString
bs CString -> m a
inner = forall (m :: * -> *) b.
MonadUnliftIO m =>
((forall a. m a -> IO a) -> IO b) -> m b
withRunInIO forall a b. (a -> b) -> a -> b
$ \forall a. m a -> IO a
run -> forall a. ByteString -> (CString -> IO a) -> IO a
B.useAsCString ByteString
bs forall a b. (a -> b) -> a -> b
$ forall a. m a -> IO a
run forall b c a. (b -> c) -> (a -> b) -> a -> c
. CString -> m a
inner
useAsCStringLen :: MonadUnliftIO m => ByteString -> (CStringLen -> m a) -> m a
useAsCStringLen :: forall (m :: * -> *) a.
MonadUnliftIO m =>
ByteString -> (CStringLen -> m a) -> m a
useAsCStringLen ByteString
bs CStringLen -> m a
inner = forall (m :: * -> *) b.
MonadUnliftIO m =>
((forall a. m a -> IO a) -> IO b) -> m b
withRunInIO forall a b. (a -> b) -> a -> b
$ \forall a. m a -> IO a
run -> forall a. ByteString -> (CStringLen -> IO a) -> IO a
B.useAsCStringLen ByteString
bs forall a b. (a -> b) -> a -> b
$ forall a. m a -> IO a
run forall b c a. (b -> c) -> (a -> b) -> a -> c
. CStringLen -> m a
inner
getLine :: MonadIO m => m ByteString
getLine :: forall (m :: * -> *). MonadIO m => m ByteString
getLine = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO IO ByteString
B.getLine
getContents :: MonadIO m => m ByteString
getContents :: forall (m :: * -> *). MonadIO m => m ByteString
getContents = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO IO ByteString
B.getContents
putStr :: MonadIO m => ByteString -> m ()
putStr :: forall (m :: * -> *). MonadIO m => ByteString -> m ()
putStr = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall b c a. (b -> c) -> (a -> b) -> a -> c
. ByteString -> IO ()
B.putStr
interact :: MonadIO m => (ByteString -> ByteString) -> m ()
interact :: forall (m :: * -> *).
MonadIO m =>
(ByteString -> ByteString) -> m ()
interact = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall b c a. (b -> c) -> (a -> b) -> a -> c
. (ByteString -> ByteString) -> IO ()
B.interact
readFile :: MonadIO m => FilePath -> m ByteString
readFile :: forall (m :: * -> *). MonadIO m => FilePath -> m ByteString
readFile = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall b c a. (b -> c) -> (a -> b) -> a -> c
. FilePath -> IO ByteString
B.readFile
writeFile :: MonadIO m => FilePath -> ByteString -> m ()
writeFile :: forall (m :: * -> *). MonadIO m => FilePath -> ByteString -> m ()
writeFile FilePath
fp = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall b c a. (b -> c) -> (a -> b) -> a -> c
. FilePath -> ByteString -> IO ()
B.writeFile FilePath
fp
appendFile :: MonadIO m => FilePath -> ByteString -> m ()
appendFile :: forall (m :: * -> *). MonadIO m => FilePath -> ByteString -> m ()
appendFile FilePath
fp = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall b c a. (b -> c) -> (a -> b) -> a -> c
. FilePath -> ByteString -> IO ()
B.appendFile FilePath
fp
hGetLine :: MonadIO m => Handle -> m ByteString
hGetLine :: forall (m :: * -> *). MonadIO m => Handle -> m ByteString
hGetLine = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall b c a. (b -> c) -> (a -> b) -> a -> c
. Handle -> IO ByteString
B.hGetLine
hGetContents :: MonadIO m => Handle -> m ByteString
hGetContents :: forall (m :: * -> *). MonadIO m => Handle -> m ByteString
hGetContents = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall b c a. (b -> c) -> (a -> b) -> a -> c
. Handle -> IO ByteString
B.hGetContents
hGet :: MonadIO m => Handle -> Int -> m ByteString
hGet :: forall (m :: * -> *). MonadIO m => Handle -> Int -> m ByteString
hGet Handle
h = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall b c a. (b -> c) -> (a -> b) -> a -> c
. Handle -> Int -> IO ByteString
B.hGet Handle
h
hGetSome :: MonadIO m => Handle -> Int -> m ByteString
hGetSome :: forall (m :: * -> *). MonadIO m => Handle -> Int -> m ByteString
hGetSome Handle
h = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall b c a. (b -> c) -> (a -> b) -> a -> c
. Handle -> Int -> IO ByteString
B.hGetSome Handle
h
hGetNonBlocking :: MonadIO m => Handle -> Int -> m ByteString
hGetNonBlocking :: forall (m :: * -> *). MonadIO m => Handle -> Int -> m ByteString
hGetNonBlocking Handle
h = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall b c a. (b -> c) -> (a -> b) -> a -> c
. Handle -> Int -> IO ByteString
B.hGetNonBlocking Handle
h
hPut :: MonadIO m => Handle -> ByteString -> m ()
hPut :: forall (m :: * -> *). MonadIO m => Handle -> ByteString -> m ()
hPut Handle
h = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall b c a. (b -> c) -> (a -> b) -> a -> c
. Handle -> ByteString -> IO ()
B.hPut Handle
h
hPutNonBlocking :: MonadIO m => Handle -> ByteString -> m ByteString
hPutNonBlocking :: forall (m :: * -> *).
MonadIO m =>
Handle -> ByteString -> m ByteString
hPutNonBlocking Handle
h = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall b c a. (b -> c) -> (a -> b) -> a -> c
. Handle -> ByteString -> IO ByteString
B.hPutNonBlocking Handle
h
hPutStr :: MonadIO m => Handle -> ByteString -> m ()
hPutStr :: forall (m :: * -> *). MonadIO m => Handle -> ByteString -> m ()
hPutStr Handle
h = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall b c a. (b -> c) -> (a -> b) -> a -> c
. Handle -> ByteString -> IO ()
B.hPutStr Handle
h