packages feed

haskus-binary-1.4: haskus-binary.cabal

cabal-version:       2.4
name:                haskus-binary
version:             1.4
synopsis:            Haskus binary format manipulation
license:             BSD-3-Clause
license-file:        LICENSE
author:              Sylvain Henry
maintainer:          sylvain@haskus.fr
homepage:            http://www.haskus.org/system
copyright:           Sylvain Henry 2017
category:            System
build-type:          Simple

description:
   A set of types and tools to manipulate binary data, memory, etc. In
   particular to interface Haskell data types with foreign data types (C
   structs, unions, enums, etc.).

source-repository head
  type: git
  location: git://github.com/haskus/haskus-packages.git

library
  exposed-modules:

    Haskus.Format.Binary.Bits
    Haskus.Format.Binary.Bits.Finite
    Haskus.Format.Binary.Bits.Index
    Haskus.Format.Binary.Bits.Bitwise
    Haskus.Format.Binary.Bits.Reverse
    Haskus.Format.Binary.Bits.Rotate
    Haskus.Format.Binary.Bits.Shift
    Haskus.Format.Binary.Bits.Order
    Haskus.Format.Binary.Bits.Get
    Haskus.Format.Binary.Bits.Put
    Haskus.Format.Binary.Bits.Mask
    Haskus.Format.Binary.Bits.Helper

    Haskus.Format.Binary.BitSet
    Haskus.Format.Binary.BitField
    Haskus.Format.Binary.Buffer
    Haskus.Format.Binary.BufferList
    Haskus.Format.Binary.BufferBuilder
    Haskus.Format.Binary.Char
    Haskus.Format.Binary.Enum
    Haskus.Format.Binary.Endianness
    Haskus.Format.Binary.FixedPoint
    Haskus.Format.Binary.Get
    Haskus.Format.Binary.Put
    Haskus.Format.Binary.VariableLength
    Haskus.Format.Binary.Vector
    Haskus.Format.Binary.Union
    Haskus.Format.Binary.Unum
    Haskus.Format.Binary.Posit
    Haskus.Format.Binary.Record
    Haskus.Format.Binary.Storable
    Haskus.Format.Binary.Word
    Haskus.Format.Binary.Ptr
    Haskus.Format.Binary.Serialize
    Haskus.Format.Binary.Serialize.Buffer
    Haskus.Format.Binary.Layout

    Haskus.Format.Number
    Haskus.Format.Number.BitNat
    Haskus.Format.Number.NaturalRange

    Haskus.Utils.Memory
    Haskus.Memory.Buffer
    Haskus.Memory.Allocator.Malloc
    Haskus.Memory.Embed
    Haskus.Memory.View

  other-modules:

  build-depends:       
         base                      >= 4.9 && <5.0
      ,  ghc-prim
      ,  haskus-utils-types        >= 1.4.1
      ,  haskus-utils-data         >= 1.1
      ,  haskus-utils              >= 1.4
      ,  cereal                    >= 0.5
      ,  bytestring                >= 0.10
      ,  mtl                       >= 2.2
      ,  primitive
      ,  megaparsec
      ,  template-haskell
      ,  transformers
      ,  directory
      ,  filepath

  build-tools: 
  ghc-options:          -Wall
  default-language:     Haskell2010
  hs-source-dirs:       src/lib

test-suite tests
   type:                exitcode-stdio-1.0
   main-is:             Main.hs
   hs-source-dirs:      src/tests/
   ghc-options:         -Wall -threaded
   default-language:    Haskell2010
   other-modules:
         Haskus.Tests.Format.Binary
      ,  Haskus.Tests.Common
      ,  Haskus.Tests.Format.Binary.Bits
      ,  Haskus.Tests.Format.Binary.GetPut
      ,  Haskus.Tests.Format.Binary.Vector

   build-depends:    
         base
      ,  haskus-binary
      ,  haskus-utils
      ,  haskus-utils-data
      ,  tasty                   >= 0.11
      ,  tasty-quickcheck        >= 0.8
      ,  QuickCheck              >= 2.8
      ,  bytestring
      ,  doctest

Benchmark bench-BitReverse
   type:               exitcode-stdio-1.0
   main-is:            BitReverse.hs
   hs-source-dirs:     src/bench
   ghc-options:         -Wall -threaded
   default-language:     Haskell2010
   build-depends:
         base
      ,  haskus-binary
      ,  criterion