packages feed

freckle-app-1.10.2.0: library/Freckle/App/Memcached/MD5.hs

module Freckle.App.Memcached.MD5
  ( md5CacheKey
  , md5Key
  , md5Text
  ) where

import Freckle.App.Prelude

import qualified Data.ByteString.Lazy as BSL
import qualified Data.Digest.Pure.MD5 as Digest
import Freckle.App.Memcached.CacheKey

md5CacheKey :: Show a => a -> CacheKey
md5CacheKey = either (error "md5 is always cacheable") id . cacheKey . md5Key

-- | Pack any showable into an md5 encoded text
md5Key :: Show a => a -> Text
md5Key = md5Text . pack . show

md5Text :: Text -> Text
md5Text = pack . show . Digest.md5 . BSL.fromStrict . encodeUtf8