Skip to content

Commit bb2bbf0

Browse files
committed
feat: encode instance + cleaner imports
1 parent d4fc7d8 commit bb2bbf0

File tree

2 files changed

+20
-4
lines changed

2 files changed

+20
-4
lines changed

src/Data/Morpheus/Server/Deriving/Decode.hs

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@ import Data.Maybe (Maybe (..))
2929

3030
-- MORPHEUS
3131

32+
import Data.List.NonEmpty (NonEmpty)
3233
import qualified Data.List.NonEmpty as NonEmpty
33-
import Data.Maybe (fromMaybe)
3434
import Data.Morpheus.Error
3535
( internalError,
3636
internalTypeMismatch,
@@ -91,8 +91,11 @@ import Data.Morpheus.Types.Internal.Resolving
9191
)
9292
import Data.Proxy (Proxy (..))
9393
import Data.Semigroup (Semigroup (..))
94+
import Data.Sequence (Seq)
9495
import qualified Data.Sequence as Seq
96+
import Data.Set (Set)
9597
import qualified Data.Set as Set
98+
import Data.Vector (Vector)
9699
import qualified Data.Vector as Vector
97100
import GHC.Generics
98101
import Prelude
@@ -132,13 +135,13 @@ instance Decode a => Decode (NonEmpty.NonEmpty a) where
132135
decode = withRefinedList (maybe (Left "Expected a NonEmpty list") Right . NonEmpty.nonEmpty) decode
133136

134137
-- | Should this instance dedupe silently or fail on dupes ?
135-
instance (Ord a, Decode a) => Decode (Set.Set a) where
138+
instance (Ord a, Decode a) => Decode (Set a) where
136139
decode = (fmap Set.fromList) . (withList decode)
137140

138-
instance (Decode a) => Decode (Seq.Seq a) where
141+
instance (Decode a) => Decode (Seq a) where
139142
decode = (fmap Seq.fromList) . (withList decode)
140143

141-
instance (Decode a) => Decode (Vector.Vector a) where
144+
instance (Decode a) => Decode (Vector a) where
142145
decode = (fmap Vector.fromList) . (withList decode)
143146

144147
-- | Decode GraphQL type with Specific Kind

src/Data/Morpheus/Server/Deriving/Encode.hs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ import Control.Applicative (Applicative (..))
2323
import Control.Monad (Monad ((>>=)))
2424
import Data.Functor (fmap)
2525
import Data.Functor.Identity (Identity (..))
26+
import Data.List.NonEmpty (NonEmpty)
27+
import qualified Data.List.NonEmpty as NonEmpty
2628
import Data.Map (Map)
2729
import qualified Data.Map as M
2830
( toList,
@@ -92,6 +94,9 @@ import qualified Data.Set as S
9294
( toList,
9395
)
9496
import Data.Traversable (traverse)
97+
import Data.Text (pack)
98+
import Data.Vector (Vector)
99+
import qualified Data.Vector as Vector
95100
import GHC.Generics
96101
( Generic (..),
97102
)
@@ -123,6 +128,14 @@ instance (Monad m, Encode o e m a, LiftOperation o) => Encode o e m [a] where
123128
instance Encode o e m (Pair k v) => Encode o e m (k, v) where
124129
encode (key, value) = encode (Pair key value)
125130

131+
-- NonEmpty
132+
instance Encode [a] o e m => Encode (NonEmpty a) o e m where
133+
encode = encode . NonEmpty.toList
134+
135+
-- Vector
136+
instance Encode [a] o e m => Encode (Vector a) o e m where
137+
encode = encode . Vector.toList
138+
126139
-- Set
127140
instance Encode o e m [a] => Encode o e m (Set a) where
128141
encode = encode . S.toList

0 commit comments

Comments
 (0)