Skip to content

Commit 44f7285

Browse files
authored
Merge pull request #769 from IntersectMBO/jdral/serialisekey-void
A `SerialiseKey` instance for `Void`
2 parents 9f6b36f + 2259987 commit 44f7285

File tree

2 files changed

+9
-4
lines changed

2 files changed

+9
-4
lines changed

src/Database/LSMTree/Internal/Serialise/Class.hs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -510,11 +510,13 @@ instance SerialiseValue P.ByteArray where
510510
Void
511511
-------------------------------------------------------------------------------}
512512

513-
{- |
514-
This instance is intended for tables without blobs.
513+
-- | The implementation of 'deserialiseKey' throws an exception.
514+
instance SerialiseKey Void where
515+
serialiseKey = absurd
516+
deserialiseKey = error "deserialiseKey: cannot deserialise into Void"
515517

516-
The implementation of @'deserialiseValue'@ throws an excepValuen.
517-
-}
518+
519+
-- | The implementation of 'deserialiseValue' throws an exception.
518520
instance SerialiseValue Void where
519521
serialiseValue = absurd
520522
deserialiseValue = error "deserialiseValue: cannot deserialise into Void"

src/Database/LSMTree/Internal/Types.hs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import Control.DeepSeq (NFData (..), deepseq)
1919
import Data.Kind (Type)
2020
import Data.Semigroup (Sum)
2121
import Data.Typeable
22+
import Data.Void (Void)
2223
import Data.Word (Word64)
2324
import qualified Database.LSMTree.Internal.BlobRef as Unsafe
2425
import Database.LSMTree.Internal.RawBytes (RawBytes (..))
@@ -225,4 +226,6 @@ instance ResolveValue (ResolveAsFirst v) where
225226
resolveSerialised :: Proxy (ResolveAsFirst v) -> RawBytes -> RawBytes -> RawBytes
226227
resolveSerialised _p = const
227228

229+
deriving via ResolveViaSemigroup Void instance ResolveValue Void
230+
228231
deriving via (ResolveViaSemigroup (Sum v)) instance (Num v, SerialiseValue v) => ResolveValue (Sum v)

0 commit comments

Comments
 (0)