cabal-version: 3.0
name: polytropos-dhall
version: 0.1.0.2
synopsis: High-performance Dhall codecs and generic adapters for polytropos open rows
description:
Linear O(N) 'Dhall.Marshal.Decode.FromDhall' and 'Dhall.Marshal.Encode.ToDhall' codecs
and generic adapters for <https://hackage.haskell.org/package/polytropos polytropos> open records
and variants via <https://hackage.haskell.org/package/dhall dhall>.
Unlike "GHC.Generics" which builds deeply nested binary tree nodes (@(:*:)@, @(:+:)@)
during serialization, @polytropos-dhall@ unrolls the flat contiguous
'Data.Primitive.SmallArray.SmallArray' payload directly into Dhall record and union literals
and back. Variants serialize into Dhall union expressions with O(1) constructor tag dispatch.
Also provides generic adapters via 'Dhall.Marshal.Decode.GenericFromDhall' and
'Dhall.Marshal.Encode.GenericToDhall' ('Polytropos.Dhall.GenericDhall') enabling
seamless DerivingVia integration for nominal Haskell types and gachi substrates.
Start at the front door module "Polytropos.Dhall" for complete documentation,
codec options, and worked examples.
license: EUPL-1.2 OR Apache-2.0
license-file: LICENSE
author: Nadia Yvette Chambers
maintainer: nadia.yvette.chambers@ik.me
category: Data, Configuration
homepage: https://github.com/NadiaYvette/polytropos
bug-reports: https://github.com/NadiaYvette/polytropos/issues
extra-doc-files:
README.md
, CHANGELOG.md
build-type: Simple
source-repository head
type: git
location: https://github.com/NadiaYvette/polytropos
subdir: packages/polytropos-dhall
library
default-language: GHC2021
hs-source-dirs: src
exposed-modules: Polytropos.Dhall
ghc-options: -Wall
build-depends:
base >= 4.14 && < 5,
dhall >= 1.42 && < 1.43,
text >= 1.2 && < 2.2,
bytestring >= 0.10 && < 0.13,
either >= 5.0 && < 5.1,
primitive >= 0.7 && < 0.10,
polytropos-core >= 0.1 && < 0.2,
polytropos-plugin >= 0.1 && < 0.2
test-suite polytropos-dhall-test
type: exitcode-stdio-1.0
default-language: GHC2021
hs-source-dirs: test
main-is: Main.hs
ghc-options: -Wall -fplugin=Polytropos.Plugin
build-depends:
base,
dhall,
text,
bytestring,
either,
polytropos-core,
polytropos-dhall,
polytropos-plugin,
tasty,
tasty-hunit