| Copyright | (c) 2018-2022 Tim Emiola |
|---|---|
| License | BSD3 |
| Maintainer | Tim Emiola <tim@emio.la> |
| Safe Haskell | Safe-Inferred |
| Language | Haskell2010 |
KeyedVals.Handle.Codec
Description
Synopsis
- class EncodeKV a where
- class DecodeKV a where
- decodeOr :: (DecodeKV a, FromHandleErr err) => Maybe Val -> Either err (Maybe a)
- decodeOr' :: (DecodeKV b, FromHandleErr err) => Either err (Maybe Val) -> Either err (Maybe b)
- decodeOrGone :: (DecodeKV b, FromHandleErr err) => Key -> Maybe Val -> Either err b
- decodeOrGone' :: (DecodeKV b, FromHandleErr err) => Key -> Either err (Maybe Val) -> Either err b
- decodeKVs :: (Ord a, DecodeKV a, DecodeKV b, FromHandleErr err) => ValsByKey -> Either err (Map a b)
- saveEncodedKVs :: (Ord a, EncodeKV a, EncodeKV b, Monad m, FromHandleErr err) => Handle m -> Key -> Map a b -> m (Either err ())
- updateEncodedKVs :: (Ord a, EncodeKV a, EncodeKV b, Monad m, FromHandleErr err) => Handle m -> Key -> Map a b -> m (Either err ())
- class FromHandleErr err where
- fromHandleErr :: HandleErr -> err
decode/encode support
class EncodeKV a where Source #
Specifies how type a encodes as a Key or a Val.
Instances
| ToJSON a => EncodeKV (AesonOf a) Source # | |
| ToHttpApiData a => EncodeKV (HttpApiDataOf a) Source # | |
Defined in KeyedVals.Handle.Codec.HttpApiData Methods encodeKV :: HttpApiDataOf a -> Val Source # | |
| EncodeKV (TypedKey v) Source # | |
class DecodeKV a where Source #
Specifies how type a can be decoded from a Key or a Val.
Instances
| FromJSON a => DecodeKV (AesonOf a) Source # | |
| FromHttpApiData a => DecodeKV (HttpApiDataOf a) Source # | |
Defined in KeyedVals.Handle.Codec.HttpApiData | |
decodeOr :: (DecodeKV a, FromHandleErr err) => Maybe Val -> Either err (Maybe a) Source #
Decode a value, transforming decode errors to type err.
decodeOr' :: (DecodeKV b, FromHandleErr err) => Either err (Maybe Val) -> Either err (Maybe b) Source #
Decode a value, transformi decode errors to type err.
decodeOrGone :: (DecodeKV b, FromHandleErr err) => Key -> Maybe Val -> Either err b Source #
decodeOrGone' :: (DecodeKV b, FromHandleErr err) => Key -> Either err (Maybe Val) -> Either err b Source #
decode encoded ValsByKey
decodeKVs :: (Ord a, DecodeKV a, DecodeKV b, FromHandleErr err) => ValsByKey -> Either err (Map a b) Source #
Decodes a Map from a ValsByKey with encoded Keys and Vals.
save encoded ValsByKey using a Handle
saveEncodedKVs :: (Ord a, EncodeKV a, EncodeKV b, Monad m, FromHandleErr err) => Handle m -> Key -> Map a b -> m (Either err ()) Source #
updateEncodedKVs :: (Ord a, EncodeKV a, EncodeKV b, Monad m, FromHandleErr err) => Handle m -> Key -> Map a b -> m (Either err ()) Source #
Like saveEncodedKVs, but updates the keys rather than completely replacing it.
error conversion
class FromHandleErr err where Source #
Specifies how to turn HandleErr into a custom error type err.
Methods
fromHandleErr :: HandleErr -> err Source #
Instances
| FromHandleErr HandleErr Source # | |
Defined in KeyedVals.Handle.Codec Methods fromHandleErr :: HandleErr -> HandleErr Source # | |