Safe Haskell | Safe-Inferred |
---|---|
Language | GHC2021 |
Database.LSMTree.Internal.Entry
Contents
Synopsis
- data Entry v b
- = Insert !v
- | InsertWithBlob !v !b
- | Mupdate !v
- | Delete
- hasBlob :: Entry v b -> Bool
- onValue :: v' -> (v -> v') -> Entry v b -> v'
- onBlobRef :: b' -> (b -> b') -> Entry v b -> b'
- newtype NumEntries = NumEntries Int
- unNumEntries :: NumEntries -> Int
- combine :: (v -> v -> v) -> Entry v b -> Entry v b -> Entry v b
- combineUnion :: (v -> v -> v) -> Entry v b -> Entry v b -> Entry v b
- combineMaybe :: (v -> v -> v) -> Maybe (Entry v b) -> Maybe (Entry v b) -> Maybe (Entry v b)
Documentation
Constructors
Insert !v | |
InsertWithBlob !v !b | |
Mupdate !v | |
Delete |
Instances
Bifoldable Entry Source # | |
Bifunctor Entry Source # | |
Foldable (Entry v) Source # | |
Defined in Database.LSMTree.Internal.Entry Methods fold :: Monoid m => Entry v m -> m # foldMap :: Monoid m => (a -> m) -> Entry v a -> m # foldMap' :: Monoid m => (a -> m) -> Entry v a -> m # foldr :: (a -> b -> b) -> b -> Entry v a -> b # foldr' :: (a -> b -> b) -> b -> Entry v a -> b # foldl :: (b -> a -> b) -> b -> Entry v a -> b # foldl' :: (b -> a -> b) -> b -> Entry v a -> b # foldr1 :: (a -> a -> a) -> Entry v a -> a # foldl1 :: (a -> a -> a) -> Entry v a -> a # elem :: Eq a => a -> Entry v a -> Bool # maximum :: Ord a => Entry v a -> a # minimum :: Ord a => Entry v a -> a # | |
Traversable (Entry v) Source # | |
Functor (Entry v) Source # | |
(Show b, Show v) => Show (Entry v b) Source # | |
(NFData v, NFData b) => NFData (Entry v b) Source # | |
Defined in Database.LSMTree.Internal.Entry | |
(Eq b, Eq v) => Eq (Entry v b) Source # | |
newtype NumEntries Source #
A count of entries, for example the number of entries in a run.
This number is limited by the machine's word size. On 32-bit systems, the
maximum number we can represent is 2^31
which is roughly 2 billion. This
should be a sufficiently large limit that we never reach it in practice. By
extension for 64-bit and higher-bit systems this limit is also sufficiently
large.
Constructors
NumEntries Int |
Instances
unNumEntries :: NumEntries -> Int Source #
Value resolution/merging
combineUnion :: (v -> v -> v) -> Entry v b -> Entry v b -> Entry v b Source #
Combine two entries of runs that have been union
ed together. If any one
has a value, the result should have a value (represented by Insert
). If
both have a value, these values get combined monoidally. Only take a blob
from the left entry.
Note: Entry
is a semigroup with combineUnion
if the (v -> v -> v)
argument is associative.