packages feed

binary-file-0.15.0: examples/bitslb.hs

{-# LANGUAGE QuasiQuotes, ScopedTypeVariables, TypeFamilies #-}

import File.Binary (binary, Field(..))
import File.Binary.Instances ()
import qualified File.Binary.Instances.LittleEndian as L (BitsInt)
import qualified File.Binary.Instances.BigEndian as B (BitsInt)

--------------------------------------------------------------------------------

main :: IO ()
main = do
	let (bits :: Bits, "") = fromBinary () "he" -- "\x1b\xf0"
	print bits
	print (toBinary () bits :: String)

[binary|

Bits deriving Show

2{L.BitsInt}: little1
2{L.BitsInt}: little2
2{B.BitsInt}: big1
3{B.BitsInt}: big2
3{B.BitsInt}: big3
4{L.BitsInt} : little3
-- {Bool}: bb0
-- {Bool}: bb1
-- {Bool}: bb2
-- {Bool}: bb3

|]