byte-containers-0.1.0.1: byte-containers.cabal
cabal-version: 2.2
name: byte-containers
version: 0.1.0.1
synopsis: Sets and maps with 8-bit words for keys
description:
This library provides variant of @Data.Map@ and @Data.Set@ from
the @containers@ library where the key is specialized to @Word8@.
Internally, this uses a 256-bit bitmask for the presence of keys
and a @SmallArray@ of values of keys that were present. For example,
the map @{2 => Z, 3 => B, 5 => X, 9 => A}@ would be repsented in
memory as:
.
> Bitmask: 0011010001000000... (240 more zero bits)
> Value Array: Z,B,X,A
.
This is optimized for reads. Lookup is @O(1)@. Union is technically
@O(1)@ but only because the universe of keys is finite. The current
implementation always scans through all 256 bits of key space.
homepage: https://github.com/byteverse/byte-containers
bug-reports: https://github.com/byteverse/byte-containers/issues
license: BSD-3-Clause
license-file: LICENSE
author: Andrew Martin
maintainer: amartin@layer3com.com
copyright: 2020 Andrew Martin
category: Data
build-type: Simple
extra-doc-files: CHANGELOG.md
library
build-depends:
, base >=4.12 && <5
, primitive >=0.7 && <0.10
, run-st >=0.1 && <0.2
, wide-word >=0.1.1 && <0.2
hs-source-dirs: src
default-language: Haskell2010
exposed-modules:
Data.Map.Word8
Data.Set.Word8
ghc-options: -Wall -O2
test-suite test
default-language: Haskell2010
type: exitcode-stdio-1.0
hs-source-dirs: test
main-is: Main.hs
ghc-options: -Wall -O2
build-depends:
, base >=4.12 && <5
, byte-containers
, byteslice >=0.2.9 && <0.3
, primitive >=0.7 && <0.10
, quickcheck-classes >=0.6.4
, tasty
, tasty-quickcheck
source-repository head
type: git
location: git://github.com/byteverse/byte-containers.git