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 # |