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/GraphObject.hs | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) (limited to 'src/Data/JLD/Model/GraphObject.hs') diff --git a/src/Data/JLD/Model/GraphObject.hs b/src/Data/JLD/Model/GraphObject.hs index 3db9e6b..4d7d3ad 100644 --- a/src/Data/JLD/Model/GraphObject.hs +++ b/src/Data/JLD/Model/GraphObject.hs @@ -1,4 +1,4 @@ -module Data.JLD.Model.GraphObject (isGraphObject, isNotGraphObject, toGraphObject) where +module Data.JLD.Model.GraphObject (isGraphObject, isGraphObject', isNotGraphObject, isNotGraphObject', toGraphObject) where import Data.JLD.Prelude @@ -6,17 +6,22 @@ import Data.JLD.Model.Keyword (Keyword (..), isKeyword) import Data.Aeson (Object, Value (..)) import Data.Aeson.Key qualified as K (toText) -import Data.Aeson.KeyMap qualified as KM (keys, singleton, member) -import Data.Vector qualified as V (singleton) +import Data.Aeson.KeyMap qualified as KM (keys, member, singleton) isGraphObject :: Value -> Bool -isGraphObject (Object o) - | KM.member (show KeywordGraph) o = - all (`isKeyword` [KeywordGraph, KeywordId, KeywordIndex, KeywordContext]) (K.toText <$> KM.keys o) +isGraphObject (Object o) = isGraphObject' o isGraphObject _ = False +isGraphObject' :: Object -> Bool +isGraphObject' o = + KM.member (show KeywordGraph) o + && all (`isKeyword` [KeywordGraph, KeywordId, KeywordIndex, KeywordContext]) (K.toText <$> KM.keys o) + isNotGraphObject :: Value -> Bool isNotGraphObject = isGraphObject .> not +isNotGraphObject' :: Object -> Bool +isNotGraphObject' = isGraphObject' .> not + toGraphObject :: Value -> Object -toGraphObject = V.singleton .> Array .> KM.singleton (show KeywordGraph) +toGraphObject = pure .> Array .> KM.singleton (show KeywordGraph) -- cgit v1.3.1