aeson-schemas-1.3.5: src/Data/Aeson/Schema/Utils/Compat.hs
{-# LANGUAGE CPP #-}
module Data.Aeson.Schema.Utils.Compat (
-- * Key
Key,
keyToText,
-- * KeyMap
KeyMap,
KeyMap.singleton,
KeyMap.fromList,
KeyMap.lookup,
unions,
) where
import Data.List (foldl')
import Data.Text (Text)
import Prelude hiding (lookup)
#if MIN_VERSION_aeson(2,0,0)
import Data.Aeson.Key (Key)
import qualified Data.Aeson.Key as Key
import Data.Aeson.KeyMap (KeyMap)
import qualified Data.Aeson.KeyMap as KeyMap
keyToText :: Key -> Text
keyToText = Key.toText
#else
import Data.HashMap.Strict (HashMap)
import qualified Data.HashMap.Strict as KeyMap
type Key = Text
type KeyMap = HashMap Key
keyToText :: Key -> Text
keyToText = id
#endif
unions :: [KeyMap v] -> KeyMap v
unions = foldl' KeyMap.union KeyMap.empty