Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- data Cache k v (m :: * -> *) a where
- Insert :: (Eq k, Hashable k) => k -> v -> Cache k v m ()
- Insert' :: (Eq k, Hashable k) => Maybe TimeSpec -> k -> v -> Cache k v m ()
- Lookup :: (Eq k, Hashable k) => k -> Cache k v m (Maybe v)
- Lookup' :: (Eq k, Hashable k) => k -> Cache k v m (Maybe v)
- Keys :: (Eq k, Hashable k) => Cache k v m [k]
- Delete :: (Eq k, Hashable k) => k -> Cache k v m ()
- FilterWithKey :: (Eq k, Hashable k) => (k -> v -> Bool) -> Cache k v m ()
- Purge :: (Eq k, Hashable k) => Cache k v m ()
- PurgeExpired :: (Eq k, Hashable k) => Cache k v m ()
- Size :: (Eq k, Hashable k) => Cache k v m Int
- DefaultExipration :: (Eq k, Hashable k) => Cache k v m (Maybe TimeSpec)
- SetDefaultExpiration :: (Eq k, Hashable k) => Maybe TimeSpec -> Cache k v m ()
- insert :: forall k v r. (Eq k, Hashable k, Member (Cache k v) r) => k -> v -> Sem r ()
- insert' :: forall k v r. (Eq k, Hashable k, Member (Cache k v) r) => Maybe TimeSpec -> k -> v -> Sem r ()
- lookup :: forall k v r. (Eq k, Hashable k, Member (Cache k v) r) => k -> Sem r (Maybe v)
- lookup' :: forall k v r. (Eq k, Hashable k, Member (Cache k v) r) => k -> Sem r (Maybe v)
- keys :: forall k v r. (Eq k, Hashable k, Member (Cache k v) r) => Sem r [k]
- delete :: forall k v r. (Eq k, Hashable k, Member (Cache k v) r) => k -> Sem r ()
- filterWithKey :: forall k v r. (Eq k, Hashable k, Member (Cache k v) r) => (k -> v -> Bool) -> Sem r ()
- purge :: forall k v r. (Eq k, Hashable k, Member (Cache k v) r) => Sem r ()
- purgeExpired :: forall k v r. (Eq k, Hashable k, Member (Cache k v) r) => Sem r ()
- size :: forall k v r. (Eq k, Hashable k, Member (Cache k v) r) => Sem r Int
- defaultExipration :: forall k v r. (Eq k, Hashable k, Member (Cache k v) r) => Sem r (Maybe TimeSpec)
- setDefaultExpiration :: forall k v r. (Eq k, Hashable k, Member (Cache k v) r) => Maybe TimeSpec -> Sem r ()
- runCacheAtomicState :: forall k v r a. Members '[Embed IO, AtomicState (Cache k v)] r => Sem (Cache k v ': r) a -> Sem r a
- runCacheAtomicState' :: forall k v r a. Members '[Final IO, AtomicState (Cache k v)] r => Sem (Cache k v ': r) a -> Sem r a
- runCache :: forall k v r a. Members '[Embed IO] r => Maybe TimeSpec -> Sem (Cache k v ': (AtomicState (Cache k v) ': r)) a -> Sem r a
- runCache' :: forall k v r a. Members '[Final IO] r => Maybe TimeSpec -> Sem (Cache k v ': (AtomicState (Cache k v) ': (Embed IO ': r))) a -> Sem r a
Documentation
data Cache k v (m :: * -> *) a where Source #
Insert :: (Eq k, Hashable k) => k -> v -> Cache k v m () | |
Insert' :: (Eq k, Hashable k) => Maybe TimeSpec -> k -> v -> Cache k v m () | |
Lookup :: (Eq k, Hashable k) => k -> Cache k v m (Maybe v) | |
Lookup' :: (Eq k, Hashable k) => k -> Cache k v m (Maybe v) | |
Keys :: (Eq k, Hashable k) => Cache k v m [k] | |
Delete :: (Eq k, Hashable k) => k -> Cache k v m () | |
FilterWithKey :: (Eq k, Hashable k) => (k -> v -> Bool) -> Cache k v m () | |
Purge :: (Eq k, Hashable k) => Cache k v m () | |
PurgeExpired :: (Eq k, Hashable k) => Cache k v m () | |
Size :: (Eq k, Hashable k) => Cache k v m Int | |
DefaultExipration :: (Eq k, Hashable k) => Cache k v m (Maybe TimeSpec) | |
SetDefaultExpiration :: (Eq k, Hashable k) => Maybe TimeSpec -> Cache k v m () |
Instances
type DefiningModule Cache Source # | |
Defined in Polysemy.Cache |
insert :: forall k v r. (Eq k, Hashable k, Member (Cache k v) r) => k -> v -> Sem r () Source #
Insert an item into the cache, using the default expiration value of the cache.
insert' :: forall k v r. (Eq k, Hashable k, Member (Cache k v) r) => Maybe TimeSpec -> k -> v -> Sem r () Source #
Insert an item in the cache, with an explicit expiration value.
lookup :: forall k v r. (Eq k, Hashable k, Member (Cache k v) r) => k -> Sem r (Maybe v) Source #
Lookup an item with the given key, and delete it if it is expired.
The function will only return a value if it is present in the cache and if the item is not expired.
The function will eagerly delete the item from the cache if it is expired.
lookup' :: forall k v r. (Eq k, Hashable k, Member (Cache k v) r) => k -> Sem r (Maybe v) Source #
Lookup an item with the given key, but don't delete it if it is expired.
The function will only return a value if it is present in the cache and if the item is not expired.
The function will not delete the item from the cache.
keys :: forall k v r. (Eq k, Hashable k, Member (Cache k v) r) => Sem r [k] Source #
Return all keys present in the cache.
delete :: forall k v r. (Eq k, Hashable k, Member (Cache k v) r) => k -> Sem r () Source #
Delete an item from the cache. Won't do anything if the item is not present.
filterWithKey :: forall k v r. (Eq k, Hashable k, Member (Cache k v) r) => (k -> v -> Bool) -> Sem r () Source #
Keeps elements that satify a predicate (used for cache invalidation). Note that the predicate might be called for expired items.
purge :: forall k v r. (Eq k, Hashable k, Member (Cache k v) r) => Sem r () Source #
Delete all elements (cache invalidation).
purgeExpired :: forall k v r. (Eq k, Hashable k, Member (Cache k v) r) => Sem r () Source #
Delete all items that are expired.
This is one big atomic operation.
size :: forall k v r. (Eq k, Hashable k, Member (Cache k v) r) => Sem r Int Source #
Return the size of the cache, including expired items.
defaultExipration :: forall k v r. (Eq k, Hashable k, Member (Cache k v) r) => Sem r (Maybe TimeSpec) Source #
Get the default expiration value of newly added cache items.
setDefaultExpiration :: forall k v r. (Eq k, Hashable k, Member (Cache k v) r) => Maybe TimeSpec -> Sem r () Source #
Change the default expiration value of newly added cache items.
runCacheAtomicState :: forall k v r a. Members '[Embed IO, AtomicState (Cache k v)] r => Sem (Cache k v ': r) a -> Sem r a Source #
Run a Cache
using AtomicState
runCacheAtomicState' :: forall k v r a. Members '[Final IO, AtomicState (Cache k v)] r => Sem (Cache k v ': r) a -> Sem r a Source #
Alternative version of runCacheAtomicState
that uses Final
instead of Embed