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