{-# OPTIONS_GHC -fno-warn-orphans #-} {-# LANGUAGE InstanceSigs #-} {-# LANGUAGE NoImplicitPrelude #-} {-# LANGUAGE PartialTypeSignatures #-} {-# LANGUAGE ViewPatterns #-} module Crypto.Hash.Types.Digest.Read where import Rebase.Prelude hiding (hash) import Crypto.Hash import Data.ByteArray.Encoding import qualified Rebase.Data.Text as Text instance HashAlgorithm a => Read (Digest a) where readsPrec :: Int -> (String -> [(Digest a, String)]) readsPrec _ (Text.encodeUtf8 . Text.pack -> bytes) = toList $ (flip (,) "") <$> (digestFromByteString =<< baseConv bytes) where baseConv :: ByteString -> Maybe (ByteString) baseConv = listToMaybe . toList . convertFromBase Base16