diff options
Diffstat (limited to 'haskell/src/SpaceTraders/Utils.hs')
-rw-r--r-- | haskell/src/SpaceTraders/Utils.hs | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/haskell/src/SpaceTraders/Utils.hs b/haskell/src/SpaceTraders/Utils.hs new file mode 100644 index 0000000..12bfd6a --- /dev/null +++ b/haskell/src/SpaceTraders/Utils.hs @@ -0,0 +1,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 |