-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | read/write binary file -- --
-- runghc -XQuasiQuotes exam.hs some.bmp out.bmp ---- -- exam.hs: -- --
-- import File.Binary -- import File.Binary.Data.LittleEndian -- import System.Environment -- import Data.ByteString as BS -- -- main = do -- [inf, outf] <- getArgs -- -- cnt <- BS.readFile inf -- let bmp = readBitmap $ cnt `BS.append` replicate 20 ' ' -- print bmp -- -- let out = writeBitmap bmp -- authorFirst = "Yoshikuni ", -- authorSecond = "Jujo " -- -- BS.writeFile outf out -- -- instance RetType (Int, Int, Int) where -- type Argument (Int, Int, Int) = () -- fromType _ (b, g, r) = cc $ [ -- fromType 1 b, fromType 1 g, fromType 1 r, zero] -- toType _ str = let -- (b, rest) = toType 1 str -- (g, rest') = toType 1 rest -- (r, rest'') = toType 1 rest' in -- ((b, g, r), dp 1 rest'') -- -- [binary| -- -- Bitmap -- -- 2: "BM" -- 4: fileSize -- 2: 0 -- 2: 0 -- 4: offset -- -- 4: 40 -- 4: bitmapWidth -- 4: bitmapHeight -- 2: 1 -- 2: bitsPerPixel -- 4: compressionMethod -- 4: imageSize -- 4: horizontalResolution -- 4: verticalResolution -- 4: numberOfColors -- 4: importantColors -- ((), Just numberOfColors)<[(Int, Int, Int)]>: colors -- imageSize<BS.ByteString>: image -- -- 10<String>: authorFirst -- 10<String>: authorSecond -- -- |] --@package binary-file @version 0.12.6 module File.Binary.Data.LittleEndian instance RetType Int module File.Binary.Data.BigEndian instance RetType Int module File.Binary readBinaryFile :: FilePath -> IO String writeBinaryFile :: FilePath -> String -> IO () binary :: QuasiQuoter class RetType r where type family Argument r fromType :: (RetType r, Str s) => Argument r -> r -> s toType :: (RetType r, Str s) => Argument r -> s -> (r, s) class Str a tk :: Str a => Int -> a -> a dp :: Str a => Int -> a -> a ts :: Str a => a -> String fs :: Str a => String -> a fbs :: Str a => ByteString -> a tbs :: Str a => a -> ByteString ti :: Str a => a -> Integer fi :: Str a => Int -> Integer -> a tiBE :: Str a => a -> Integer fiBE :: Str a => Int -> Integer -> a cc :: Str a => [a] -> a zero :: Str a => a len :: Str a => a -> Int empty :: Str a => a -> Bool rev :: Str a => a -> a tii :: Str a => Int -> a -> (Int, a) tiiBE :: Str a => Int -> a -> (Int, a) fii :: Str a => Int -> Int -> a fiiBE :: Str a => Int -> Int -> a