{-# OPTIONS_HADDOCK prune not-home #-}
module KeyedVals.Handle (
Handle (),
HandleErr (..),
countKVs,
loadVal,
saveVal,
loadKVs,
saveKVs,
updateKVs,
loadSlice,
loadFrom,
saveTo,
deleteKeys,
deleteKeysFrom,
deleteMatches,
deleteMatchesFrom,
deleteSelected,
deleteSelectedFrom,
close,
Selection (..),
Glob,
mkGlob,
globPattern,
isIn,
Key,
Val,
ValsByKey,
) where
import Data.List.NonEmpty (NonEmpty)
import KeyedVals.Handle.Internal
import Numeric.Natural (Natural)
loadVal :: Handle m -> Key -> m (Either HandleErr (Maybe Val))
loadVal :: forall (m :: * -> *).
Handle m -> Key -> m (Either HandleErr (Maybe Key))
loadVal = Handle m -> Key -> m (Either HandleErr (Maybe Key))
forall (m :: * -> *).
Handle m -> Key -> m (Either HandleErr (Maybe Key))
hLoadVal
saveVal :: Handle m -> Key -> Val -> m (Either HandleErr ())
saveVal :: forall (m :: * -> *).
Handle m -> Key -> Key -> m (Either HandleErr ())
saveVal = Handle m -> Key -> Key -> m (Either HandleErr ())
forall (m :: * -> *).
Handle m -> Key -> Key -> m (Either HandleErr ())
hSaveVal
loadKVs :: Handle m -> Key -> m (Either HandleErr ValsByKey)
loadKVs :: forall (m :: * -> *).
Handle m -> Key -> m (Either HandleErr ValsByKey)
loadKVs = Handle m -> Key -> m (Either HandleErr ValsByKey)
forall (m :: * -> *).
Handle m -> Key -> m (Either HandleErr ValsByKey)
hLoadKVs
saveKVs :: Handle m -> Key -> ValsByKey -> m (Either HandleErr ())
saveKVs :: forall (m :: * -> *).
Handle m -> Key -> ValsByKey -> m (Either HandleErr ())
saveKVs = Handle m -> Key -> ValsByKey -> m (Either HandleErr ())
forall (m :: * -> *).
Handle m -> Key -> ValsByKey -> m (Either HandleErr ())
hSaveKVs
loadFrom :: Handle m -> Key -> Key -> m (Either HandleErr (Maybe Val))
loadFrom :: forall (m :: * -> *).
Handle m -> Key -> Key -> m (Either HandleErr (Maybe Key))
loadFrom = Handle m -> Key -> Key -> m (Either HandleErr (Maybe Key))
forall (m :: * -> *).
Handle m -> Key -> Key -> m (Either HandleErr (Maybe Key))
hLoadFrom
saveTo :: Handle m -> Key -> Key -> Val -> m (Either HandleErr ())
saveTo :: forall (m :: * -> *).
Handle m -> Key -> Key -> Key -> m (Either HandleErr ())
saveTo = Handle m -> Key -> Key -> Key -> m (Either HandleErr ())
forall (m :: * -> *).
Handle m -> Key -> Key -> Key -> m (Either HandleErr ())
hSaveTo
loadSlice :: Handle m -> Key -> Selection -> m (Either HandleErr ValsByKey)
loadSlice :: forall (m :: * -> *).
Handle m -> Key -> Selection -> m (Either HandleErr ValsByKey)
loadSlice = Handle m -> Key -> Selection -> m (Either HandleErr ValsByKey)
forall (m :: * -> *).
Handle m -> Key -> Selection -> m (Either HandleErr ValsByKey)
hLoadSlice
updateKVs :: Handle m -> Key -> ValsByKey -> m (Either HandleErr ())
updateKVs :: forall (m :: * -> *).
Handle m -> Key -> ValsByKey -> m (Either HandleErr ())
updateKVs = Handle m -> Key -> ValsByKey -> m (Either HandleErr ())
forall (m :: * -> *).
Handle m -> Key -> ValsByKey -> m (Either HandleErr ())
hUpdateKVs
deleteKeys :: Handle m -> NonEmpty Key -> m (Either HandleErr ())
deleteKeys :: forall (m :: * -> *).
Handle m -> NonEmpty Key -> m (Either HandleErr ())
deleteKeys Handle m
h NonEmpty Key
keys = Handle m -> Selection -> m (Either HandleErr ())
forall (m :: * -> *).
Handle m -> Selection -> m (Either HandleErr ())
deleteSelected Handle m
h (Selection -> m (Either HandleErr ()))
-> Selection -> m (Either HandleErr ())
forall a b. (a -> b) -> a -> b
$ NonEmpty Key -> Selection
AllOf NonEmpty Key
keys
deleteSelected :: Handle m -> Selection -> m (Either HandleErr ())
deleteSelected :: forall (m :: * -> *).
Handle m -> Selection -> m (Either HandleErr ())
deleteSelected = Handle m -> Selection -> m (Either HandleErr ())
forall (m :: * -> *).
Handle m -> Selection -> m (Either HandleErr ())
hDeleteSelected
deleteMatches :: Handle m -> Glob -> m (Either HandleErr ())
deleteMatches :: forall (m :: * -> *). Handle m -> Glob -> m (Either HandleErr ())
deleteMatches Handle m
h Glob
g = Handle m -> Selection -> m (Either HandleErr ())
forall (m :: * -> *).
Handle m -> Selection -> m (Either HandleErr ())
deleteSelected Handle m
h (Selection -> m (Either HandleErr ()))
-> Selection -> m (Either HandleErr ())
forall a b. (a -> b) -> a -> b
$ Glob -> Selection
Match Glob
g
deleteKeysFrom :: Handle m -> Key -> NonEmpty Key -> m (Either HandleErr ())
deleteKeysFrom :: forall (m :: * -> *).
Handle m -> Key -> NonEmpty Key -> m (Either HandleErr ())
deleteKeysFrom Handle m
h Key
key NonEmpty Key
ks = Handle m -> Key -> Selection -> m (Either HandleErr ())
forall (m :: * -> *).
Handle m -> Key -> Selection -> m (Either HandleErr ())
deleteSelectedFrom Handle m
h Key
key (Selection -> m (Either HandleErr ()))
-> Selection -> m (Either HandleErr ())
forall a b. (a -> b) -> a -> b
$ NonEmpty Key -> Selection
AllOf NonEmpty Key
ks
deleteSelectedFrom :: Handle m -> Key -> Selection -> m (Either HandleErr ())
deleteSelectedFrom :: forall (m :: * -> *).
Handle m -> Key -> Selection -> m (Either HandleErr ())
deleteSelectedFrom = Handle m -> Key -> Selection -> m (Either HandleErr ())
forall (m :: * -> *).
Handle m -> Key -> Selection -> m (Either HandleErr ())
hDeleteSelectedKVs
deleteMatchesFrom :: Handle m -> Key -> Glob -> m (Either HandleErr ())
deleteMatchesFrom :: forall (m :: * -> *).
Handle m -> Key -> Glob -> m (Either HandleErr ())
deleteMatchesFrom Handle m
h Key
key Glob
g = Handle m -> Key -> Selection -> m (Either HandleErr ())
forall (m :: * -> *).
Handle m -> Key -> Selection -> m (Either HandleErr ())
deleteSelectedFrom Handle m
h Key
key (Selection -> m (Either HandleErr ()))
-> Selection -> m (Either HandleErr ())
forall a b. (a -> b) -> a -> b
$ Glob -> Selection
Match Glob
g
countKVs :: Handle m -> Key -> m (Either HandleErr Natural)
countKVs :: forall (m :: * -> *).
Handle m -> Key -> m (Either HandleErr Natural)
countKVs = Handle m -> Key -> m (Either HandleErr Natural)
forall (m :: * -> *).
Handle m -> Key -> m (Either HandleErr Natural)
hCountKVs
close :: Handle m -> m ()
close :: forall (m :: * -> *). Handle m -> m ()
close = Handle m -> m ()
forall (m :: * -> *). Handle m -> m ()
hClose