lsm-tree-0.1.0.0: Log-structured merge-trees
Safe HaskellSafe-Inferred
LanguageGHC2021

Data.BloomFilter.BitVec64

Description

Minimal bit vector implementation.

Synopsis

Documentation

newtype BitVec64 Source #

Bit vector backed up by an array of Word64

This vector's offset and length are multiples of 64

Constructors

BV64 (Vector Word64) 

Instances

Instances details
Show BitVec64 Source # 
Instance details

Defined in Data.BloomFilter.BitVec64

Eq BitVec64 Source # 
Instance details

Defined in Data.BloomFilter.BitVec64

newtype MBitVec64 s Source #

Constructors

MBV64 (MVector s Word64) 

new :: Word64 -> ST s (MBitVec64 s) Source #

Will create an explicitly pinned byte array if it is larger than 1 kB. This is done because pinned byte arrays allow for more efficient serialisation, but the definition of isByteArrayPinned changed in GHC 9.6, see https://gitlab.haskell.org/ghc/ghc/-/issues/22255.

TODO: remove this workaround once a solution exists, e.g. a new primop that allows checking for implicit pinning.

unsafeRemWord64 :: Word64 -> Word64 -> Word64 Source #

Like rem but does not check for division by 0.