module Data.ByteString.Lazy.UTF8.Unified (
module Data.ByteString.Lazy.Char8
, module Data.ByteString.Lazy.UTF8
, pack
, unpack
, Data.ByteString.Lazy.UTF8.Unified.length
, putStr
, putStrLn
, readFile
, writeFile
, appendFile
, interact
, getContents
, hGetContents
) where
import Control.Monad
import Data.Int
import Data.ByteString.Lazy.UTF8 hiding (length)
import qualified Data.ByteString.Lazy.UTF8 as U (length)
import qualified Data.ByteString.Lazy.UTF8 as Lazy (ByteString)
import Data.ByteString.Lazy.Char8 hiding (
ByteString
, pack,unpack
, uncons, splitAt, take, drop, span, break, putStrLn, putStr, foldl, foldr, length, lines
, putStr,putStrLn,readFile,writeFile,appendFile,interact,getContents,hGetContents
, hGet,hGetNonBlocking,hPut
)
import Prelude hiding (length, putStr, putStrLn, readFile, writeFile, appendFile, interact, getContents)
import qualified System.IO.UTF8 as UIO
import System.IO (Handle)
pack :: String -> Lazy.ByteString
pack = fromString
unpack :: Lazy.ByteString -> String
unpack = toString
length :: Lazy.ByteString -> Int64
length = fromIntegral . U.length
putStr :: Lazy.ByteString -> IO ()
putStr = UIO.putStr . unpack
putStrLn :: Lazy.ByteString -> IO ()
putStrLn = UIO.putStrLn . unpack
readFile :: FilePath -> IO Lazy.ByteString
readFile fp = pack `liftM` UIO.readFile fp
writeFile :: FilePath -> Lazy.ByteString -> IO ()
writeFile fp lbs = UIO.writeFile fp $ unpack lbs
appendFile :: FilePath -> Lazy.ByteString -> IO ()
appendFile fp lbs = UIO.appendFile fp $ unpack lbs
interact :: (Lazy.ByteString -> Lazy.ByteString) -> IO ()
interact f = UIO.interact (\ s -> unpack $ f $ pack s)
getContents :: IO Lazy.ByteString
getContents = pack `liftM` UIO.getContents
hGetContents :: Handle -> IO Lazy.ByteString
hGetContents h = pack `liftM` UIO.hGetContents h