packages feed

serdoc-core-0.1.0.0: src/Data/SerDoc/TestUtil.hs

module Data.SerDoc.TestUtil
where

import Text.Read
import Data.ByteString (ByteString)
import qualified Data.Text as Text
import Data.Text.Encoding (encodeUtf8, decodeUtf8)
import Data.Maybe

showBS :: Show a => a -> ByteString
showBS = encodeUtf8 . Text.pack . show

readMaybeBS_ :: Read a => ByteString -> Maybe a
readMaybeBS_ = readMaybe . Text.unpack . decodeUtf8

readMaybeBS :: Read a => ByteString -> Maybe (a, ByteString)
readMaybeBS src = do
  (x, restStr) <- listToMaybe . reads . Text.unpack . decodeUtf8 $ src
  return (x, encodeUtf8 . Text.pack $ restStr)