{-# LANGUAGE OverloadedStrings #-}
module Database.Persist.Cereal where
import Data.Serialize (Serialize, encode, decode)
import qualified Data.Text as T
import Database.Persist
toPersistValue :: Serialize a => a -> PersistValue
toPersistValue = PersistByteString . encode
fromPersistValue :: Serialize a => PersistValue -> Either T.Text a
fromPersistValue (PersistByteString bs) = either (Left . T.pack) Right (decode bs)
fromPersistValue _ = Left "Serializable values must be converted from PersistByteString"