freckle-app-1.18.1.0: library/Freckle/App/Memcached/MD5.hs
module Freckle.App.Memcached.MD5
( md5CacheKey
, md5Key
, md5Text
) where
import Freckle.App.Prelude
import Data.ByteString.Lazy qualified as BSL
import Data.Digest.Pure.MD5 qualified 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