The binary-file package

[Tags:bsd3, library]

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

 |]

Properties

Versions 0.2, 0.3, 0.4, 0.6, 0.12.6, 0.12.8, 0.13.1, 0.13.2, 0.14.1, 0.14.3, 0.15.0, 0.15.9, 0.15.10, 0.15.11, 0.15.13, 0.15.16, 0.15.18, 0.15.22, 0.15.24, 0.15.25
Dependencies base (>3 && <5), bytestring, monads-tf, peggy, template-haskell [details]
License BSD3
Author Yoshikuni Jujo <PAF01143@nifty.ne.jp>
Maintainer Yoshikuni Jujo <PAF01143@nifty.ne.jp>
Stability experimental
Category File
Home page https://skami.iocikun.jp/haskell/packages/binary-file
Source repository head: git clone git://github.com/YoshikuniJujo/binary-file.git
this: git clone git://github.com/YoshikuniJujo/binary-file.git(tag 0.15.13)
Uploaded Tue Apr 23 02:15:40 UTC 2013 by YoshikuniJujo
Distributions NixOS:0.15.25
Downloads 3958 total (44 in the last 30 days)
Votes
0 []
Status Docs not available [build log]
All reported builds failed as of 2015-12-10 [all 6 reports]

Modules

  • File
    • File.Binary
      • File.Binary.Instances
        • File.Binary.Instances.BigEndian
        • File.Binary.Instances.LittleEndian

Downloads

Maintainer's Corner

For package maintainers and hackage trustees