From 15a7d5bef97557fc0f8a7b3fe4a68bf84a807daa Mon Sep 17 00:00:00 2001 From: Julien Dessaux Date: Wed, 19 Jul 2023 11:56:17 +0200 Subject: [haskell] refactoring --- haskell/src/SpaceTraders/Utils.hs | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 haskell/src/SpaceTraders/Utils.hs (limited to 'haskell/src/SpaceTraders/Utils.hs') 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 -- cgit v1.2.3