-- | Binary IO.

module Agda.Utils.IO.Binary
  ( readBinaryFile'
  ) where

import System.IO
import Data.ByteString.Lazy as BS

-- | Returns a close function for the file together with the contents.

readBinaryFile' :: FilePath -> IO (ByteString, IO ())
readBinaryFile' :: FilePath -> IO (ByteString, IO ())
readBinaryFile' FilePath
file = do
    Handle
h <- FilePath -> IOMode -> IO Handle
openBinaryFile FilePath
file IOMode
ReadMode
    ByteString
s <- Handle -> IO ByteString
BS.hGetContents Handle
h
    (ByteString, IO ()) -> IO (ByteString, IO ())
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return (ByteString
s, Handle -> IO ()
hClose Handle
h)