| Safe Haskell | Safe-Inferred | 
|---|---|
| Language | GHC2021 | 
Database.LSMTree.Internal.Entry
Contents
Synopsis
- data Entry v b
- = Insert !v
 - | InsertWithBlob !v !b
 - | Upsert !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 | |
| Upsert !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 unioned 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.