Skip to content

Commit e022903

Browse files
committed
Add encoder for NonEmptyString
1 parent ce7255e commit e022903

File tree

2 files changed

+9
-0
lines changed

2 files changed

+9
-0
lines changed

src/Data/Argonaut/Encode/Class.purs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import Data.Argonaut.Encode.Encoders
44

55
import Data.Argonaut.Core (Json, fromObject)
66
import Data.Array.NonEmpty (NonEmptyArray)
7+
import Data.String.NonEmpty (NonEmptyString)
78
import Data.Either (Either)
89
import Data.Identity (Identity)
910
import Data.List (List)
@@ -58,6 +59,9 @@ instance encodeJsonJson :: EncodeJson Json where
5859
instance encodeJsonCodePoint :: EncodeJson CodePoint where
5960
encodeJson = encodeCodePoint
6061

62+
instance encodeNonEmptyString :: EncodeJson NonEmptyString where
63+
encodeJson = encodeNonEmptyString
64+
6165
instance encodeJsonNonEmpty_Array :: (EncodeJson a) => EncodeJson (NonEmpty Array a) where
6266
encodeJson = encodeNonEmpty_Array encodeJson
6367

src/Data/Argonaut/Encode/Encoders.purs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ import Data.Int (toNumber)
1212
import Data.List (List(..), (:), toUnfoldable)
1313
import Data.List.NonEmpty as NEL
1414
import Data.List.Types (NonEmptyList)
15+
import Data.String.NonEmpty (NonEmptyString)
16+
import Data.String.NonEmpty as NonEmptyString
1517
import Data.Map as M
1618
import Data.Maybe (Maybe(..))
1719
import Data.NonEmpty (NonEmpty(..))
@@ -60,6 +62,9 @@ encodeString = fromString
6062
encodeCodePoint :: CodePoint -> Json
6163
encodeCodePoint = encodeString <<< CP.singleton
6264

65+
encodeNonEmptyString :: NonEmptyString -> Json
66+
encodeNonEmptyString = fromString <<< NonEmptyString.toString
67+
6368
encodeNonEmpty_Array :: forall a. (a -> Json) -> NonEmpty Array a -> Json
6469
encodeNonEmpty_Array encoder (NonEmpty h t) = encodeArray encoder (Arr.cons h t)
6570

0 commit comments

Comments
 (0)