Skip to content

Commit 301357a

Browse files
committed
Remove now-unused definitions in BlobRef
We don't actually need to export the StrongBlobRef type since all uses of it are temporary, for doing I/O.
1 parent 54c2348 commit 301357a

File tree

1 file changed

+4
-51
lines changed

1 file changed

+4
-51
lines changed

src/Database/LSMTree/Internal/BlobRef.hs

Lines changed: 4 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -4,24 +4,16 @@
44
{- HLINT ignore "Use unless" -}
55

66
module Database.LSMTree.Internal.BlobRef (
7-
RawBlobRef (..)
8-
, BlobSpan (..)
9-
, blobRefSpanSize
7+
BlobSpan (..)
8+
, RawBlobRef (..)
109
, WeakBlobRef (..)
11-
, withWeakBlobRef
12-
, withWeakBlobRefs
13-
, deRefWeakBlobRef
14-
, deRefWeakBlobRefs
1510
, WeakBlobRefInvalid (..)
1611
, rawToWeakBlobRef
17-
, removeReference
18-
, removeReferences
1912
, readRawBlobRef
2013
, readWeakBlobRef
2114
, readWeakBlobRefs
2215
) where
2316

24-
import Control.DeepSeq (NFData (..))
2517
import Control.Monad (when)
2618
import Control.Monad.Class.MonadThrow (Exception, MonadMask,
2719
MonadThrow (..), bracket, throwIO)
@@ -56,12 +48,6 @@ data RawBlobRef m h = RawBlobRef {
5648
}
5749
deriving stock (Show)
5850

59-
instance NFData h => NFData (RawBlobRef m h) where
60-
rnf (RawBlobRef a b) = rnf a `seq` rnf b
61-
62-
blobRefSpanSize :: StrongBlobRef m h -> Int
63-
blobRefSpanSize = fromIntegral . blobSpanSize . strongBlobRefSpan
64-
6551
-- | A \"weak\" reference to a blob within a blob file. These are the ones we
6652
-- can return in the public API and can outlive their parent table.
6753
--
@@ -105,37 +91,6 @@ newtype WeakBlobRefInvalid = WeakBlobRefInvalid Int
10591
deriving stock (Show)
10692
deriving anyclass (Exception)
10793

108-
{-# SPECIALISE withWeakBlobRef ::
109-
WeakBlobRef IO h
110-
-> (StrongBlobRef IO h -> IO a)
111-
-> IO a #-}
112-
-- | 'WeakBlobRef's are weak references. They do not keep the blob file open.
113-
-- Dereference a 'WeakBlobRef' to a strong 'BlobRef' to allow I\/O using
114-
-- 'readBlob' or 'readBlobIOOp'. Use 'removeReference' when the 'BlobRef' is
115-
-- no longer needed.
116-
--
117-
-- Throws 'WeakBlobRefInvalid' if the weak reference has become invalid.
118-
--
119-
withWeakBlobRef ::
120-
(MonadMask m, PrimMonad m)
121-
=> WeakBlobRef m h
122-
-> (StrongBlobRef m h -> m a)
123-
-> m a
124-
withWeakBlobRef wref = bracket (deRefWeakBlobRef wref) removeReference
125-
126-
{-# SPECIALISE withWeakBlobRefs ::
127-
V.Vector (WeakBlobRef IO h)
128-
-> (V.Vector (StrongBlobRef IO h) -> IO a)
129-
-> IO a #-}
130-
-- | The same as 'withWeakBlobRef' but for many references in one go.
131-
--
132-
withWeakBlobRefs ::
133-
(MonadMask m, PrimMonad m)
134-
=> V.Vector (WeakBlobRef m h)
135-
-> (V.Vector (StrongBlobRef m h) -> m a)
136-
-> m a
137-
withWeakBlobRefs wrefs = bracket (deRefWeakBlobRefs wrefs) removeReferences
138-
13994
{-# SPECIALISE deRefWeakBlobRef ::
14095
WeakBlobRef IO h
14196
-> IO (StrongBlobRef IO h) #-}
@@ -178,10 +133,6 @@ deRefWeakBlobRefs wrefs = do
178133
removeReference :: (MonadMask m, PrimMonad m) => StrongBlobRef m h -> m ()
179134
removeReference = BlobFile.removeReference . strongBlobRefFile
180135

181-
{-# SPECIALISE removeReferences :: V.Vector (StrongBlobRef IO h) -> IO () #-}
182-
removeReferences :: (MonadMask m, PrimMonad m) => V.Vector (StrongBlobRef m h) -> m ()
183-
removeReferences = V.mapM_ removeReference
184-
185136
{-# INLINE readRawBlobRef #-}
186137
readRawBlobRef ::
187138
(MonadThrow m, PrimMonad m)
@@ -246,3 +197,5 @@ readWeakBlobRefs hbio wrefs =
246197
(\off len -> SerialisedBlob (RB.fromByteArray off len ba))
247198
bufOffs
248199
(V.map blobRefSpanSize refs)
200+
where
201+
blobRefSpanSize = fromIntegral . blobSpanSize . strongBlobRefSpan

0 commit comments

Comments
 (0)