summaryrefslogtreecommitdiff
path: root/haskell/src/SpaceTraders/Utils.hs
blob: 12bfd6ab5bad4de423221c1e39805ab28194cca6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
module SpaceTraders.Utils
  ( decodeText
  , fromJSONValue
  , int2ByteString
  ) where

import Data.Aeson
import Data.Aeson.Types
import qualified Data.ByteString as B
import qualified Data.ByteString.Builder as B
import qualified Data.ByteString.Internal as B
import qualified Data.Text as T
import qualified Data.Text.Encoding as T

decodeText :: FromJSON a => T.Text -> Maybe a
decodeText = decode . B.toLazyByteString . T.encodeUtf8Builder

fromJSONValue :: FromJSON a => Value -> Either String a
fromJSONValue = parseEither parseJSON

int2ByteString :: Int -> B.ByteString
int2ByteString = B.pack . map B.c2w . show