1+ {-# LANGUAGE PatternSynonyms #-}
12-- | A pure model of a single session containing multiple tables.
23--
34-- This model supports all features for /both/ normal and monoidal tables,
@@ -31,7 +32,7 @@ module Database.LSMTree.Model.Session (
3132 , runModelM
3233 , runModelMWithInjectedErrors
3334 -- ** Errors
34- , Err (.. )
35+ , Err (.. , DefaultErrDiskFault )
3536 -- * Tables
3637 , Table
3738 , TableConfig (.. )
@@ -234,7 +235,11 @@ runModelMWithInjectedErrors ::
234235runModelMWithInjectedErrors Nothing onNoErrors _ st =
235236 runModelM onNoErrors st
236237runModelMWithInjectedErrors (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"
238243
239244--
240245-- Errors
@@ -248,8 +253,10 @@ data Err =
248253 | ErrSnapshotWrongType
249254 | ErrBlobRefInvalidated
250255 | 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
253260
254261instance Show Err where
255262 showsPrec d = \ case
@@ -266,33 +273,15 @@ instance Show Err where
266273 ErrBlobRefInvalidated ->
267274 showString " ErrBlobRefInvalidated"
268275 ErrCursorClosed ->
269- showString " ErrCursorCosed "
270- ErrFsError s ->
276+ showString " ErrCursorClosed "
277+ ErrDiskFault s ->
271278 showParen (d > appPrec) $
272- showString " ErrFsError " .
279+ showString " ErrDiskFault " .
280+ showParen True (showString s)
281+ ErrOther s ->
282+ showParen (d > appPrec) $
283+ showString " ErrOther " .
273284 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-
296285
297286{- ------------------------------------------------------------------------------
298287 Tables
0 commit comments