packages feed

persistent-cereal (empty) → 0.1.0

raw patch · 5 files changed

+47/−0 lines, 5 filesdep +basedep +cerealdep +persistentsetup-changed

Dependencies added: base, cereal, persistent, text

Files

+ Database/Persist/Cereal.hs view
@@ -0,0 +1,13 @@+{-# 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"
+ Database/Persist/Cereal/Instances.hs view
@@ -0,0 +1,11 @@+{-# LANGUAGE FlexibleInstances, UndecidableInstances #-}+-- | Warning: this module uses @UndecidableInstances@+module Database.Persist.Cereal.Instances where++import Data.Serialize          (Serialize)+import Database.Persist+import Database.Persist.Cereal as C++instance (Serialize a) => PersistField a where+    toPersistValue = C.toPersistValue+    fromPersistValue = C.fromPersistValue
+ LICENSE view
@@ -0,0 +1,1 @@+Public domain
+ Setup.hs view
@@ -0,0 +1,2 @@+import Distribution.Simple+main = defaultMain
+ persistent-cereal.cabal view
@@ -0,0 +1,20 @@+name:                persistent-cereal+version:             0.1.0+synopsis:            Helper functions for writing Persistent instances+description:         Minor boilerplate for writing Persistance instances for values that are serializable with the 'cereal' library.+homepage:            http://hub.darcs.net/co-dan/persistent-cereal+license:             PublicDomain+license-file:        LICENSE+author:              Dan Frumin+maintainer:          difrumin@gmail.com+category:            Database+build-type:          Simple+cabal-version:       >=1.8++library+  exposed-modules:     Database.Persist.Cereal,+                       Database.Persist.Cereal.Instances+  build-depends:       base       >= 4.5 && <= 4.8,+                       cereal     >= 0.1 && < 0.4,+                       persistent >= 1.2.3.2 && < 1.4,+                       text       >= 0.8