summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG.md5
-rw-r--r--graphql-spice.cabal2
-rw-r--r--src/Language/GraphQL/Class.hs31
3 files changed, 37 insertions, 1 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 2f4f4f8..1318a8d 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -6,6 +6,10 @@ The format is based on
and this project adheres to
[Haskell Package Versioning Policy](https://pvp.haskell.org/).
+## [Unreleased]
+### Added
+- `ToGraphQL` and `FromGraphQL` instances for `Word`.
+
## [1.0.1.0] - 2023-02-17
### Added
- `ToGraphQL` and `FromGraphQL` typeclasses with instances for basic types.
@@ -16,4 +20,5 @@ and this project adheres to
- JSON serialization.
- Test helpers.
+[Unreleased]: https://www.caraus.tech/projects/pub-graphql-spice/repository/28/diff?rev=master&rev_to=v1.0.1.0
[1.0.1.0]: https://www.caraus.tech/projects/pub-graphql-spice/repository/28/diff?rev=v1.0.1.0&rev_to=v1.0.0.0
diff --git a/graphql-spice.cabal b/graphql-spice.cabal
index 78e9594..2a709bd 100644
--- a/graphql-spice.cabal
+++ b/graphql-spice.cabal
@@ -3,7 +3,7 @@ cabal-version: 2.4
name: graphql-spice
version: 1.0.1.0
synopsis: GraphQL with batteries
-description: Various extensions and convenience functions for the core
+description: Various extensions and convenience functions for the core
graphql package.
category: Language
homepage: https://www.caraus.tech/projects/pub-graphql-spice
diff --git a/src/Language/GraphQL/Class.hs b/src/Language/GraphQL/Class.hs
index 3f52a13..b363fd0 100644
--- a/src/Language/GraphQL/Class.hs
+++ b/src/Language/GraphQL/Class.hs
@@ -14,6 +14,7 @@ module Language.GraphQL.Class
import Data.Foldable (toList)
import Data.Int (Int8, Int16, Int32, Int64)
import Data.Text (Text)
+import Data.Word (Word8, Word16, Word32, Word64)
import qualified Data.Text.Read as Text.Read
import Data.Vector (Vector)
import qualified Data.Vector as Vector
@@ -50,6 +51,21 @@ instance ToGraphQL Int32 where
instance ToGraphQL Int64 where
toGraphQL = Type.Int . fromIntegral
+instance ToGraphQL Word where
+ toGraphQL = Type.Int . fromIntegral
+
+instance ToGraphQL Word8 where
+ toGraphQL = Type.Int . fromIntegral
+
+instance ToGraphQL Word16 where
+ toGraphQL = Type.Int . fromIntegral
+
+instance ToGraphQL Word32 where
+ toGraphQL = Type.Int . fromIntegral
+
+instance ToGraphQL Word64 where
+ toGraphQL = Type.Int . fromIntegral
+
instance ToGraphQL a => ToGraphQL [a] where
toGraphQL = Type.List . fmap toGraphQL
@@ -87,6 +103,21 @@ instance FromGraphQL Int32 where
instance FromGraphQL Int64 where
fromGraphQL = fromGraphQLToIntegral
+instance FromGraphQL Word where
+ fromGraphQL = fromGraphQLToIntegral
+
+instance FromGraphQL Word8 where
+ fromGraphQL = fromGraphQLToIntegral
+
+instance FromGraphQL Word16 where
+ fromGraphQL = fromGraphQLToIntegral
+
+instance FromGraphQL Word32 where
+ fromGraphQL = fromGraphQLToIntegral
+
+instance FromGraphQL Word64 where
+ fromGraphQL = fromGraphQLToIntegral
+
instance FromGraphQL a => FromGraphQL [a] where
fromGraphQL (Type.List value) = traverse fromGraphQL value
fromGraphQL _ = Nothing