diff options
| author | Volpeon <github@volpeon.ink> | 2023-05-26 07:40:13 +0200 |
|---|---|---|
| committer | Volpeon <github@volpeon.ink> | 2023-05-26 07:40:13 +0200 |
| commit | 11d0fb47c292a0ca25a9c377499d2b221d97a5cb (patch) | |
| tree | e729e2a4508763b3073b7eae9a56bc9c6a9ca0f7 /src/Data/JLD/Model/ListObject.hs | |
| download | hs-jsonld-11d0fb47c292a0ca25a9c377499d2b221d97a5cb.tar.gz hs-jsonld-11d0fb47c292a0ca25a9c377499d2b221d97a5cb.tar.bz2 hs-jsonld-11d0fb47c292a0ca25a9c377499d2b221d97a5cb.zip | |
Init
Diffstat (limited to 'src/Data/JLD/Model/ListObject.hs')
| -rw-r--r-- | src/Data/JLD/Model/ListObject.hs | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/Data/JLD/Model/ListObject.hs b/src/Data/JLD/Model/ListObject.hs new file mode 100644 index 0000000..8dda349 --- /dev/null +++ b/src/Data/JLD/Model/ListObject.hs | |||
| @@ -0,0 +1,24 @@ | |||
| 1 | module Data.JLD.Model.ListObject (isListObject, isNotListObject, toListObject) where | ||
| 2 | |||
| 3 | import Data.JLD.Prelude | ||
| 4 | |||
| 5 | import Data.JLD.Model.Keyword (Keyword (..)) | ||
| 6 | |||
| 7 | import Data.Aeson (Value (..)) | ||
| 8 | import Data.Aeson.KeyMap qualified as KM | ||
| 9 | import Data.Vector qualified as V | ||
| 10 | |||
| 11 | isListObject :: Value -> Bool | ||
| 12 | isListObject (Object o) = | ||
| 13 | KM.member (show KeywordList) o | ||
| 14 | && ( KM.size o == 1 | ||
| 15 | || (KM.size o == 2 && KM.member (show KeywordIndex) o) | ||
| 16 | ) | ||
| 17 | isListObject _ = False | ||
| 18 | |||
| 19 | isNotListObject :: Value -> Bool | ||
| 20 | isNotListObject = isListObject .> not | ||
| 21 | |||
| 22 | toListObject :: Value -> Value | ||
| 23 | toListObject value@(Array _) = Object <| KM.singleton (show KeywordList) value | ||
| 24 | toListObject value = Object <| KM.singleton (show KeywordList) (Array <| V.singleton value) | ||
