{-# LANGUAGE OverloadedStrings #-} module Database.Redis.Request (renderRequest) where import qualified Data.ByteString.Char8 as S renderRequest :: [S.ByteString] -> S.ByteString renderRequest req = S.concat (argCnt:args) where argCnt = S.concat ["*", showBS (length req), crlf] args = map renderArg req renderArg :: S.ByteString -> S.ByteString renderArg arg = S.concat ["$", argLen arg, crlf, arg, crlf] where argLen = showBS . S.length showBS :: (Show a) => a -> S.ByteString showBS = S.pack . show crlf :: S.ByteString crlf = "\r\n"