Safe Haskell | None |
---|---|
Language | Haskell2010 |
Test.Ouroboros.Storage.LedgerDB.V1.BackingStore.Mock
Synopsis
- data Err
- newtype ID = ID Word
- data Mock vs = Mock {
- backingValues ∷ vs
- backingSeqNo ∷ WithOrigin SlotNo
- copies ∷ Map FsPath (WithOrigin SlotNo, vs)
- isClosed ∷ Bool
- valueHandles ∷ Map ID ValueHandleStatus
- nextId ∷ ID
- data ValueHandle values = ValueHandle {}
- data ValueHandleStatus
- emptyMock ∷ EmptyValues vs ⇒ Mock vs
- class ApplyDiff vs d where
- applyDiff ∷ vs → d → vs
- class DiffSize d where
- class EmptyValues vs where
- emptyValues ∷ vs
- class (EmptyValues vs, ApplyDiff vs d, LookupKeysRange ks vs, LookupKeys ks vs, ValuesLength vs, MakeDiff vs d, DiffSize d, KeysSize ks, MakeInitHint vs, MakeWriteHint d, MakeReadHint vs, MakeSerializeTablesHint vs, Show ks, Show vs, Show d, Show (InitHint vs), Show (WriteHint d), Show (ReadHint vs), Show (SerializeTablesHint vs), Eq ks, Eq vs, Eq d, Eq (InitHint vs), Eq (WriteHint d), Eq (ReadHint vs), Eq (SerializeTablesHint vs), Typeable ks, Typeable vs, Typeable d, Typeable (InitHint vs), Typeable (WriteHint d), Typeable (ReadHint vs), Typeable (SerializeTablesHint vs)) ⇒ HasOps ks vs d
- class KeysSize ks where
- class LookupKeys ks vs where
- lookupKeys ∷ ks → vs → vs
- class LookupKeysRange ks vs where
- lookupKeysRange ∷ Maybe ks → Int → vs → vs
- class MakeDiff vs d where
- diff ∷ vs → vs → d
- class MakeInitHint vs where
- makeInitHint ∷ Proxy vs → InitHint vs
- class MakeReadHint vs where
- makeReadHint ∷ Proxy vs → ReadHint vs
- class MakeSerializeTablesHint vs where
- makeSerializeTablesHint ∷ Proxy vs → SerializeTablesHint vs
- class MakeWriteHint d where
- makeWriteHint ∷ Proxy d → WriteHint d
- class ValuesLength vs where
- valuesLength ∷ vs → Int
- newtype MockMonad ks vs d a = MockMonad (ExceptT Err (State (Mock vs)) a)
- runMockMonad ∷ MockMonad ks vs d a → Mock vs → (Either Err a, Mock vs)
- mBSClose ∷ MonadState (Mock vs) m ⇒ m ()
- mBSCopy ∷ (MonadState (Mock vs) m, MonadError Err m) ⇒ SerializeTablesHint vs → FsPath → m ()
- mBSInitFromCopy ∷ (MonadState (Mock vs) m, MonadError Err m) ⇒ InitHint vs → FsPath → m ()
- mBSInitFromValues ∷ MonadState (Mock vs) m ⇒ WithOrigin SlotNo → InitHint vs → vs → m ()
- mBSVHAtSlot ∷ Monad m ⇒ ValueHandle vs → m (WithOrigin SlotNo)
- mBSVHClose ∷ MonadState (Mock vs) m ⇒ ValueHandle vs → m ()
- mBSVHRangeRead ∷ (MonadState (Mock vs) m, MonadError Err m, LookupKeysRange ks vs) ⇒ ValueHandle vs → ReadHint vs → RangeQuery ks → m vs
- mBSVHRead ∷ (MonadState (Mock vs) m, MonadError Err m, LookupKeys ks vs) ⇒ ValueHandle vs → ReadHint vs → ks → m vs
- mBSVHStat ∷ (MonadState (Mock vs) m, MonadError Err m, ValuesLength vs) ⇒ ValueHandle vs → m Statistics
- mBSValueHandle ∷ (MonadState (Mock vs) m, MonadError Err m) ⇒ m (ValueHandle vs)
- mBSWrite ∷ (MonadState (Mock vs) m, MonadError Err m, ApplyDiff vs d) ⇒ SlotNo → WriteHint d → d → m ()
- mGuardBSClosed ∷ (MonadState (Mock vs) m, MonadError Err m) ⇒ m ()
- mGuardBSVHClosed ∷ (MonadState (Mock vs) m, MonadError Err m) ⇒ ValueHandle vs → m ()
Types
Constructors
ErrBackingStoreClosed | |
ErrBackingStoreValueHandleClosed | |
ErrCopyPathAlreadyExists | |
ErrCopyPathDoesNotExist | |
ErrNonMonotonicSeqNo (WithOrigin SlotNo) (WithOrigin SlotNo) |
An ID for a mocked value handle.
Constructors
Mock | |
Fields
|
data ValueHandle values Source #
Constructors
ValueHandle | |
Instances
Show values ⇒ Show (ValueHandle values) Source # | |
Defined in Test.Ouroboros.Storage.LedgerDB.V1.BackingStore.Mock Methods showsPrec ∷ Int → ValueHandle values → ShowS # show ∷ ValueHandle values → String # showList ∷ [ValueHandle values] → ShowS # | |
Eq (ValueHandle vs) Source # | |
Defined in Test.Ouroboros.Storage.LedgerDB.V1.BackingStore.Mock Methods (==) ∷ ValueHandle vs → ValueHandle vs → Bool # (/=) ∷ ValueHandle vs → ValueHandle vs → Bool # | |
Ord (ValueHandle vs) Source # | |
Defined in Test.Ouroboros.Storage.LedgerDB.V1.BackingStore.Mock Methods compare ∷ ValueHandle vs → ValueHandle vs → Ordering # (<) ∷ ValueHandle vs → ValueHandle vs → Bool # (<=) ∷ ValueHandle vs → ValueHandle vs → Bool # (>) ∷ ValueHandle vs → ValueHandle vs → Bool # (>=) ∷ ValueHandle vs → ValueHandle vs → Bool # max ∷ ValueHandle vs → ValueHandle vs → ValueHandle vs # min ∷ ValueHandle vs → ValueHandle vs → ValueHandle vs # |
data ValueHandleStatus Source #
Constructors
Open | |
ClosedByStore | |
ClosedByHandle |
Instances
Show ValueHandleStatus Source # | |
Defined in Test.Ouroboros.Storage.LedgerDB.V1.BackingStore.Mock Methods showsPrec ∷ Int → ValueHandleStatus → ShowS # show ∷ ValueHandleStatus → String # showList ∷ [ValueHandleStatus] → ShowS # | |
Eq ValueHandleStatus Source # | |
Defined in Test.Ouroboros.Storage.LedgerDB.V1.BackingStore.Mock Methods |
emptyMock ∷ EmptyValues vs ⇒ Mock vs Source #
An empty mock state.
Type classes
class DiffSize d where Source #
Counts how many diffs are there. Not to be confused with how many values result from the diffs.
class EmptyValues vs where Source #
Methods
emptyValues ∷ vs Source #
class (EmptyValues vs, ApplyDiff vs d, LookupKeysRange ks vs, LookupKeys ks vs, ValuesLength vs, MakeDiff vs d, DiffSize d, KeysSize ks, MakeInitHint vs, MakeWriteHint d, MakeReadHint vs, MakeSerializeTablesHint vs, Show ks, Show vs, Show d, Show (InitHint vs), Show (WriteHint d), Show (ReadHint vs), Show (SerializeTablesHint vs), Eq ks, Eq vs, Eq d, Eq (InitHint vs), Eq (WriteHint d), Eq (ReadHint vs), Eq (SerializeTablesHint vs), Typeable ks, Typeable vs, Typeable d, Typeable (InitHint vs), Typeable (WriteHint d), Typeable (ReadHint vs), Typeable (SerializeTablesHint vs)) ⇒ HasOps ks vs d Source #
Abstract over interactions between values, keys and diffs.
class LookupKeys ks vs where Source #
Methods
lookupKeys ∷ ks → vs → vs Source #
class LookupKeysRange ks vs where Source #
Methods
lookupKeysRange ∷ Maybe ks → Int → vs → vs Source #
class MakeInitHint vs where Source #
Methods
makeInitHint ∷ Proxy vs → InitHint vs Source #
class MakeReadHint vs where Source #
Methods
makeReadHint ∷ Proxy vs → ReadHint vs Source #
class MakeSerializeTablesHint vs where Source #
Methods
makeSerializeTablesHint ∷ Proxy vs → SerializeTablesHint vs Source #
class MakeWriteHint d where Source #
Methods
makeWriteHint ∷ Proxy d → WriteHint d Source #
class ValuesLength vs where Source #
Methods
valuesLength ∷ vs → Int Source #
State monad to run the mock in
newtype MockMonad ks vs d a Source #
State within which the mock runs.
Instances
MonadError Err (MockMonad ks vs d) Source # | |
Defined in Test.Ouroboros.Storage.LedgerDB.V1.BackingStore.Mock Methods throwError ∷ Err → MockMonad ks vs d a # catchError ∷ MockMonad ks vs d a → (Err → MockMonad ks vs d a) → MockMonad ks vs d a # | |
MonadState (Mock vs) (MockMonad ks vs d) Source # | |
Applicative (MockMonad ks vs d) Source # | |
Defined in Test.Ouroboros.Storage.LedgerDB.V1.BackingStore.Mock Methods pure ∷ a → MockMonad ks vs d a # (<*>) ∷ MockMonad ks vs d (a → b) → MockMonad ks vs d a → MockMonad ks vs d b # liftA2 ∷ (a → b → c) → MockMonad ks vs d a → MockMonad ks vs d b → MockMonad ks vs d c # (*>) ∷ MockMonad ks vs d a → MockMonad ks vs d b → MockMonad ks vs d b # (<*) ∷ MockMonad ks vs d a → MockMonad ks vs d b → MockMonad ks vs d a # | |
Functor (MockMonad ks vs d) Source # | |
Monad (MockMonad ks vs d) Source # | |
Mocked BackingStore
operations
BackingStore
mBSClose ∷ MonadState (Mock vs) m ⇒ m () Source #
Close the backing store.
Closing is idempotent.
mBSCopy ∷ (MonadState (Mock vs) m, MonadError Err m) ⇒ SerializeTablesHint vs → FsPath → m () Source #
Copy the contents of the backing store to the given path.
mBSInitFromCopy ∷ (MonadState (Mock vs) m, MonadError Err m) ⇒ InitHint vs → FsPath → m () Source #
mBSInitFromValues ∷ MonadState (Mock vs) m ⇒ WithOrigin SlotNo → InitHint vs → vs → m () Source #
mBSVHAtSlot ∷ Monad m ⇒ ValueHandle vs → m (WithOrigin SlotNo) Source #
Read the slot number out of a value handle
mBSVHClose ∷ MonadState (Mock vs) m ⇒ ValueHandle vs → m () Source #
Close a backing store value handle.
Closing is idempotent.
mBSVHRangeRead ∷ (MonadState (Mock vs) m, MonadError Err m, LookupKeysRange ks vs) ⇒ ValueHandle vs → ReadHint vs → RangeQuery ks → m vs Source #
Perform a range read on a backing store value handle.
mBSVHRead ∷ (MonadState (Mock vs) m, MonadError Err m, LookupKeys ks vs) ⇒ ValueHandle vs → ReadHint vs → ks → m vs Source #
Perform a regular read on a backing store value handle
mBSVHStat ∷ (MonadState (Mock vs) m, MonadError Err m, ValuesLength vs) ⇒ ValueHandle vs → m Statistics Source #
Retrieve statistics for the backing store value handle.
mBSValueHandle ∷ (MonadState (Mock vs) m, MonadError Err m) ⇒ m (ValueHandle vs) Source #
Open a new value handle, which captures the state of the backing store at the time of opening the handle.
mBSWrite ∷ (MonadState (Mock vs) m, MonadError Err m, ApplyDiff vs d) ⇒ SlotNo → WriteHint d → d → m () Source #
Write a diff to the backing store.
mGuardBSClosed ∷ (MonadState (Mock vs) m, MonadError Err m) ⇒ m () Source #
Throw an error if the backing store has been closed.
mGuardBSVHClosed ∷ (MonadState (Mock vs) m, MonadError Err m) ⇒ ValueHandle vs → m () Source #
Throw an error if the given backing store value handle has been closed.