build-type: Simple cabal-version: >= 1.8 name: binary-file version: 0.15.13 stability: experimental author: Yoshikuni Jujo maintainer: Yoshikuni Jujo homepage: https://skami.iocikun.jp/haskell/packages/binary-file license: BSD3 license-file: LICENSE category: File synopsis: read/write binary file description: See example directory's sample code. . > runghc -XQuasiQuotes -XTypeFamilies -XFlexibleInstances exam.hs some.bmp . exam.hs: . > import File.Binary > import File.Binary.Instances > import File.Binary.Instances.LittleEndian > import System.Environment > import Data.ByteString.Lazy as BSL > > main = do > [inf] <- getArgs > cnt <- BS.readFile inf > let Right (bmp, rest) = fromBinary () cnt :: (Bitmap, String) > print bmp > > instance Field (Int, Int, Int) where > type FieldArgument (Int, Int, Int) = () > fromBinary _ s = let > (b, rest) = toType 1 s > (g, rest') = toType 1 rest > (r, rest'') = toType 1 rest' in > ((b, g, r), snd $ getBytes 1 1 rest'') > toBinary _ (b, g, r) = concatBinary [ > fromType 1 b, fromType 1 g, fromType 1 r, > makeBinary $ BSL.singleton 0] > > [binary| > > Bitmap > > deriving Show > > 2: "BM" > 4: file_size > 2: 0 > 2: 0 > 4: offset > > 4: 40 > 4: width > 4: height > 2: 1 > 2: bits_per_pixel > 4: compression > 4: image_size > 4: resolutionH > 4: resolutionV > 4: color_num > 4: important_color_num > ((), Just color_num)[OPENBRACKET](Int, Int, Int)[CLOSEBRACKET]: colors > ((), image_size)[OPENBRACKET]String[CLOSEBRACKET]: image > > |] . extra-source-files: examples/readPNG.hs, examples/CRC.hs, examples/readBitmap.hs, examples/readHex.hs, examples/tiny.hs examples/bits.hs examples/bitsb.hs examples/bitslb.hs source-repository head type: git location: git://github.com/YoshikuniJujo/binary-file.git source-repository this type: git location: git://github.com/YoshikuniJujo/binary-file.git tag: 0.15.13 library hs-source-dirs: src exposed-modules: File.Binary, File.Binary.Instances File.Binary.Instances.LittleEndian, File.Binary.Instances.BigEndian other-modules: File.Binary.Classes, File.Binary.Parse, File.Binary.Quote build-depends: base > 3 && < 5, template-haskell, peggy, bytestring, monads-tf ghc-options: -Wall