23 lines
628 B
Haskell
23 lines
628 B
Haskell
{-# OPTIONS_GHC -fno-warn-orphans #-}
|
|
|
|
module Crypto.Hash.Instances
|
|
() where
|
|
|
|
import ClassyPrelude
|
|
|
|
import Crypto.Hash
|
|
|
|
import Database.Persist
|
|
import Database.Persist.Sql
|
|
|
|
import Data.ByteArray (convert)
|
|
|
|
|
|
instance HashAlgorithm hash => PersistField (Digest hash) where
|
|
toPersistValue = PersistByteString . convert
|
|
fromPersistValue (PersistByteString bs) = maybe (Left "Could not convert Digest from ByteString") Right $ digestFromByteString bs
|
|
fromPersistValue _ = Left "Digest values must be converted from PersistByteString"
|
|
|
|
instance HashAlgorithm hash => PersistFieldSql (Digest hash) where
|
|
sqlType _ = SqlBlob
|