-- Initial buffer-builder-aeson.cabal generated by cabal init.  For further
--  documentation, see http://haskell.org/cabal/users-guide/

name:                buffer-builder-aeson
version:             0.2.0.0
synopsis:            Serialize Aeson values with Data.BufferBuilder
description:

    A very fast BufferBuilder-based JSON encoder for Aeson.
    .
    The whole library is a a single orphan instance for Aeson.Value.
    .
    > import Data.Aeson (object, (.=), Value (..))
    > import Data.BufferBuilder.Json (encodeJson)
    > import Data.BufferBuilder.Aeson ()
    > import qualified Data.ByteString as BS
    > 
    > stuff :: Value
    > stuff = Array
    >     [ object
    >         [ "name" .= ("eggs" :: String)
    >         , "price" .= (3.141592 :: Double)
    >         ]
    >     , object
    >         [ "name" .= ("cheese" :: String)
    >         , "price" .= (0.57721 :: Double)
    >         ]
    >     ]
    > 
    > main :: IO ()
    > main = do
    >     BS.putStrLn $ encodeJson stuff

license:             MIT
license-file:        LICENSE
author:              Andy Friesen, Chad Austin
maintainer:          andy.friesen@gmail.com
-- copyright:           
category:            Data
build-type:          Simple
-- extra-source-files:  
cabal-version:       >=1.10

source-repository this
  type:     git
  location: https://github.com/andyfriesen/buffer-builder-aeson
  tag:      0.2.0.0

library
  exposed-modules:     Data.BufferBuilder.Aeson
  hs-source-dirs:      src
  ghc-options: -O2 -Wall
  -- ghc-options: -ddump-ds -ddump-simpl -ddump-stg -ddump-opt-cmm -ddump-asm -ddump-to-file
  
  -- other-modules:       
  -- other-extensions:    
  build-depends:       base >=4.6 && <4.8
                     , aeson
                     , integer-gmp
                     , buffer-builder >=0.2.0.0
                     , unordered-containers
                     , vector
                     , scientific
                     , bytestring
  hs-source-dirs:      
  default-language:    Haskell2010

test-suite tests
  type: exitcode-stdio-1.0
  main-is: Main.hs
  hs-source-dirs: test
  default-language: Haskell2010
  ghc-options: -O2 -Wall

  build-depends: base ==4.*
               , buffer-builder-aeson
               , buffer-builder
               , text
               , tasty
               , tasty-hunit
               , tasty-quickcheck
               , tasty-th
               , QuickCheck
               , unordered-containers
               , vector
               , scientific
               , bytestring
               , HUnit
               , text
               , hashable
               , attoparsec
               , aeson

benchmark json-bench
  type: exitcode-stdio-1.0
  main-is: Bench.hs
  hs-source-dirs: bench
  default-language: Haskell2010
  ghc-options: -O2 -Wall
  ghc-options: -ddump-ds -ddump-simpl -ddump-stg -ddump-opt-cmm -ddump-asm -ddump-to-file
  build-depends: base
               , buffer-builder
               , buffer-builder-aeson
               , aeson
               , bytestring
               , text
               , deepseq
               , criterion
               , vector