Skip to content
This repository was archived by the owner on Jun 15, 2023. It is now read-only.

Commit ae6e154

Browse files
committed
Add lens for "number"s
1 parent 2d92a14 commit ae6e154

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

src/Data/Json/Extended.purs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ module Data.Json.Extended
55
, boolean
66
, integer
77
, decimal
8+
, number
89
, string
910
, map
1011
, map'
@@ -24,6 +25,7 @@ module Data.Json.Extended
2425
, _Boolean
2526
, _Integer
2627
, _Decimal
28+
, _Number
2729
, _Array
2830
, _Map
2931
, _Map'
@@ -89,6 +91,9 @@ integer = embed <<< Sig.Integer
8991
decimal t. Corecursive t Sig.EJsonF HN.HugeNum t
9092
decimal = embed <<< Sig.Decimal
9193

94+
number t. Corecursive t Sig.EJsonF E.Either HI.HugeInt HN.HugeNum t
95+
number = embed <<< E.either Sig.Integer Sig.Decimal
96+
9297
string t. Corecursive t Sig.EJsonF String t
9398
string = embed <<< Sig.String
9499

@@ -131,6 +136,12 @@ _Decimal = prism' decimal $ project >>> case _ of
131136
Sig.Decimal d → M.Just d
132137
_ → M.Nothing
133138

139+
_Number t. Corecursive t Sig.EJsonF Recursive t Sig.EJsonF Prism' t (E.Either HI.HugeInt HN.HugeNum)
140+
_Number = prism' number $ project >>> case _ of
141+
Sig.Integer i → M.Just (E.Left i)
142+
Sig.Decimal d → M.Just (E.Right d)
143+
_ → M.Nothing
144+
134145
_Array t. Corecursive t Sig.EJsonF Recursive t Sig.EJsonF Prism' t (Array t)
135146
_Array = prism' array $ project >>> case _ of
136147
Sig.Array xs → M.Just xs

0 commit comments

Comments
 (0)