module Buffer where import Foreign.Ptr import qualified Data.ByteString as FPS type Buffer = FPS.ByteString getBufferSize :: Buffer -> Int getBufferSize = FPS.length -- | Warning: modifying the pointed-to data modifies the buffer. withBufferPtr :: Buffer -> ((Ptr a,Int) -> IO b) -> IO b withBufferPtr b f = FPS.unsafeUseAsCStringLen b (\ (p,l) -> f (castPtr p, l)) writeBufferFile :: FilePath -> Buffer -> IO () writeBufferFile = FPS.writeFile