From b19440a4a30828f12f8eafaa7292152ecf733334 Mon Sep 17 00:00:00 2001 From: Volpeon Date: Sat, 24 Jun 2023 08:58:22 +0200 Subject: WIP: Compaction --- src/Data/JLD/Model/ListObject.hs | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) (limited to 'src/Data/JLD/Model/ListObject.hs') 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 @@ -module Data.JLD.Model.ListObject (isListObject, isNotListObject, toListObject) where +module Data.JLD.Model.ListObject (isListObject, isListObject', isNotListObject, toListObject) where import Data.JLD.Prelude import Data.JLD.Model.Keyword (Keyword (..)) -import Data.Aeson (Value (..)) -import Data.Aeson.KeyMap qualified as KM -import Data.Vector qualified as V +import Data.Aeson (Object, Value (..)) +import Data.Aeson.KeyMap qualified as KM (member, singleton, size) isListObject :: Value -> Bool -isListObject (Object o) = +isListObject (Object o) = isListObject' o +isListObject _ = False + +isListObject' :: Object -> Bool +isListObject' o = KM.member (show KeywordList) o && ( KM.size o == 1 || (KM.size o == 2 && KM.member (show KeywordIndex) o) ) -isListObject _ = False isNotListObject :: Value -> Bool isNotListObject = isListObject .> not toListObject :: Value -> Value toListObject value@(Array _) = Object <| KM.singleton (show KeywordList) value -toListObject value = Object <| KM.singleton (show KeywordList) (Array <| V.singleton value) +toListObject value = Object <| KM.singleton (show KeywordList) (Array <| pure value) -- cgit v1.2.3-54-g00ecf