aboutsummaryrefslogtreecommitdiffstats
path: root/src/Data/JLD/Model/ListObject.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Data/JLD/Model/ListObject.hs')
-rw-r--r--src/Data/JLD/Model/ListObject.hs16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/Data/JLD/Model/ListObject.hs b/src/Data/JLD/Model/ListObject.hs
index 8dda349..6277d24 100644
--- a/src/Data/JLD/Model/ListObject.hs
+++ b/src/Data/JLD/Model/ListObject.hs
@@ -1,24 +1,26 @@
1module Data.JLD.Model.ListObject (isListObject, isNotListObject, toListObject) where 1module Data.JLD.Model.ListObject (isListObject, isListObject', isNotListObject, toListObject) where
2 2
3import Data.JLD.Prelude 3import Data.JLD.Prelude
4 4
5import Data.JLD.Model.Keyword (Keyword (..)) 5import Data.JLD.Model.Keyword (Keyword (..))
6 6
7import Data.Aeson (Value (..)) 7import Data.Aeson (Object, Value (..))
8import Data.Aeson.KeyMap qualified as KM 8import Data.Aeson.KeyMap qualified as KM (member, singleton, size)
9import Data.Vector qualified as V
10 9
11isListObject :: Value -> Bool 10isListObject :: Value -> Bool
12isListObject (Object o) = 11isListObject (Object o) = isListObject' o
12isListObject _ = False
13
14isListObject' :: Object -> Bool
15isListObject' o =
13 KM.member (show KeywordList) o 16 KM.member (show KeywordList) o
14 && ( KM.size o == 1 17 && ( KM.size o == 1
15 || (KM.size o == 2 && KM.member (show KeywordIndex) o) 18 || (KM.size o == 2 && KM.member (show KeywordIndex) o)
16 ) 19 )
17isListObject _ = False
18 20
19isNotListObject :: Value -> Bool 21isNotListObject :: Value -> Bool
20isNotListObject = isListObject .> not 22isNotListObject = isListObject .> not
21 23
22toListObject :: Value -> Value 24toListObject :: Value -> Value
23toListObject value@(Array _) = Object <| KM.singleton (show KeywordList) value 25toListObject value@(Array _) = Object <| KM.singleton (show KeywordList) value
24toListObject value = Object <| KM.singleton (show KeywordList) (Array <| V.singleton value) 26toListObject value = Object <| KM.singleton (show KeywordList) (Array <| pure value)