{-# LANGUAGE GeneralizedNewtypeDeriving #-} module Polysemy.Redis.Utils where import Data.Binary (Binary) import qualified Data.Binary as B import Data.Binary.Get (runGet) import Data.Binary.Put (runPut) import Data.ByteString (ByteString) import qualified Data.ByteString.Lazy.Char8 as L import GHC.Exts newtype Path = Path { getPath :: ByteString } deriving (Eq, Ord, Show, IsString) putForRedis :: Binary a => a -> ByteString putForRedis = L.toStrict . runPut . B.put getFromRedis :: Binary a => ByteString -> a getFromRedis = runGet B.get . L.fromStrict