From 924d0109218f04f4a34bbfe1f5d18b75e1d9a66d Mon Sep 17 00:00:00 2001 From: Benjamin Barenblat Date: Fri, 28 Sep 2018 17:20:36 -0400 Subject: Stop using newtypes for labeled arguments MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It’s getting messy, so switch to a parameters datatype pattern. --- src/Data/Digest.hs | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'src/Data/Digest.hs') diff --git a/src/Data/Digest.hs b/src/Data/Digest.hs index 3bc53b7..bc2f944 100644 --- a/src/Data/Digest.hs +++ b/src/Data/Digest.hs @@ -38,6 +38,7 @@ module Data.Digest , sha1 ) where +import Data.ByteString (ByteString) import qualified Data.ByteString.Lazy as Lazy (ByteString) import qualified Data.ByteString.Lazy as ByteString.Lazy import Foreign.Marshal.Unsafe (unsafeLocalState) @@ -45,7 +46,18 @@ import Foreign.Marshal.Unsafe (unsafeLocalState) import BTLS.BoringSSL.Base import BTLS.BoringSSL.Digest import BTLS.Buffer (onBufferOfMaxSize) -import BTLS.Types (Algorithm(Algorithm), Digest(Digest)) +import BTLS.Show (showHex) +import BTLS.Types (Algorithm(Algorithm)) + +-- | The result of a hash operation. Equality comparisons on this type are +-- variable-time. +-- +-- The 'Show' instance for this type displays the digest as a hexadecimal string. +newtype Digest = Digest ByteString + deriving (Eq, Ord) + +instance Show Digest where + show (Digest d) = showHex d -- | Message Digest 5, a 128-bit digest defined in -- [RFC 1321](https://tools.ietf.org/html/rfc1321). This algorithm is -- cgit v1.2.3