1
+ {-# LANGUAGE PatternSynonyms #-}
1
2
-- | A pure model of a single session containing multiple tables.
2
3
--
3
4
-- This model supports all features for /both/ normal and monoidal tables,
@@ -31,7 +32,7 @@ module Database.LSMTree.Model.Session (
31
32
, runModelM
32
33
, runModelMWithInjectedErrors
33
34
-- ** Errors
34
- , Err (.. )
35
+ , Err (.. , DefaultErrDiskFault )
35
36
-- * Tables
36
37
, Table
37
38
, TableConfig (.. )
@@ -234,7 +235,11 @@ runModelMWithInjectedErrors ::
234
235
runModelMWithInjectedErrors Nothing onNoErrors _ st =
235
236
runModelM onNoErrors st
236
237
runModelMWithInjectedErrors (Just _) _ onErrors st =
237
- runModelM (onErrors >> throwError (ErrFsError " modelled FsError" )) st
238
+ runModelM (onErrors >> throwError DefaultErrDiskFault ) st
239
+
240
+ -- | The default 'ErrDiskFault' that model operations will throw.
241
+ pattern DefaultErrDiskFault :: Err
242
+ pattern DefaultErrDiskFault = ErrDiskFault " default"
238
243
239
244
--
240
245
-- Errors
@@ -248,8 +253,10 @@ data Err =
248
253
| ErrSnapshotWrongType
249
254
| ErrBlobRefInvalidated
250
255
| ErrCursorClosed
251
- -- | Some file system error occurred
252
- | ErrFsError String
256
+ -- | Something went wrong with the file system.
257
+ | ErrDiskFault String
258
+ | ErrOther String
259
+ deriving stock Eq
253
260
254
261
instance Show Err where
255
262
showsPrec d = \ case
@@ -266,33 +273,15 @@ instance Show Err where
266
273
ErrBlobRefInvalidated ->
267
274
showString " ErrBlobRefInvalidated"
268
275
ErrCursorClosed ->
269
- showString " ErrCursorCosed "
270
- ErrFsError s ->
276
+ showString " ErrCursorClosed "
277
+ ErrDiskFault s ->
271
278
showParen (d > appPrec) $
272
- showString " ErrFsError " .
279
+ showString " ErrDiskFault " .
280
+ showParen True (showString s)
281
+ ErrOther s ->
282
+ showParen (d > appPrec) $
283
+ showString " ErrOther " .
273
284
showParen True (showString s)
274
-
275
- instance Eq Err where
276
- (==) ErrTableClosed ErrTableClosed = True
277
- (==) ErrSnapshotCorrupted ErrSnapshotCorrupted = True
278
- (==) ErrSnapshotExists ErrSnapshotExists = True
279
- (==) ErrSnapshotDoesNotExist ErrSnapshotDoesNotExist = True
280
- (==) ErrSnapshotWrongType ErrSnapshotWrongType = True
281
- (==) ErrBlobRefInvalidated ErrBlobRefInvalidated = True
282
- (==) ErrCursorClosed ErrCursorClosed = True
283
- (==) (ErrFsError _) (ErrFsError _) = True
284
- (==) _ _ = False
285
- where
286
- _coveredAllCases x = case x of
287
- ErrTableClosed {} -> ()
288
- ErrSnapshotCorrupted {} -> ()
289
- ErrSnapshotExists {} -> ()
290
- ErrSnapshotDoesNotExist {} -> ()
291
- ErrSnapshotWrongType {} -> ()
292
- ErrBlobRefInvalidated {} -> ()
293
- ErrCursorClosed {} -> ()
294
- ErrFsError {} -> ()
295
-
296
285
297
286
{- ------------------------------------------------------------------------------
298
287
Tables
0 commit comments