Versionbump: Utils.hs: Template haskell fix; instance commented out for later version bump.
This commit is contained in:
parent
df89d4a379
commit
98626ecb4e
18
src/Utils.hs
18
src/Utils.hs
@ -2,6 +2,9 @@
|
||||
--
|
||||
-- SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
-- unused imports because of commented out FromJSON and ToJSON instances
|
||||
{-# OPTIONS_GHC -Wwarn=unused-imports #-}
|
||||
|
||||
module Utils
|
||||
( module Utils
|
||||
, module Data.Containers.ListUtils
|
||||
@ -157,6 +160,8 @@ import qualified Data.UUID as UUID
|
||||
|
||||
import Data.Containers.ListUtils
|
||||
|
||||
import qualified Data.Aeson.KeyMap as KeyMap
|
||||
|
||||
{-# ANN module ("HLint: ignore Use asum" :: String) #-}
|
||||
|
||||
|
||||
@ -1665,7 +1670,7 @@ kmaclazy :: forall a string key ba chunk.
|
||||
-> KMAC a
|
||||
kmaclazy str k = KMAC.finalize . KMAC.updates (KMAC.initialize @a str k) . toChunks
|
||||
|
||||
emptyHash :: forall a. HashAlgorithm a => Q (TExp (Digest a))
|
||||
emptyHash :: forall a. HashAlgorithm a => Code Q (Digest a)
|
||||
-- ^ Hash of `mempty`
|
||||
--
|
||||
-- Computationally preferrable to computing the hash at runtime
|
||||
@ -1864,10 +1869,12 @@ instance (Hashable k, Semigroup v) => Semigroup (MergeHashMap k v) where
|
||||
(MergeHashMap a) <> (MergeHashMap b) = MergeHashMap $ HashMap.unionWith (<>) a b
|
||||
instance (Hashable k, Semigroup v) => Monoid (MergeHashMap k v) where
|
||||
mempty = MergeHashMap HashMap.empty
|
||||
{-
|
||||
instance (Hashable k, FromJSON v, FromJSONKey k, Semigroup v) => FromJSON (MergeHashMap k v) where
|
||||
parseJSON = case Aeson.fromJSONKey of
|
||||
Aeson.FromJSONKeyCoerce -> Aeson.withObject "HashMap ~Text" $
|
||||
coerce @(Aeson.Parser (HashMap k v)) @(Aeson.Parser (MergeHashMap k v)) . fmap HashMap.fromList . traverse (\(k, v) -> (coerce @Text @k k, ) <$> parseJSON v Aeson.<?> Aeson.Key k) . HashMap.toList
|
||||
--coerce @(Aeson.Parser (HashMap k v)) @(Aeson.Parser (MergeHashMap k v)) . fmap HashMap.fromList . traverse (\(kk, v) -> let k = fromText kk in (coerce @Text @k k, ) <$> parseJSON v Aeson.<?> Aeson.Key kk) . KeyMap.toList
|
||||
coerce @(Aeson.Parser (HashMap k v)) @(Aeson.Parser (MergeHashMap k v)) . fmap HashMap.fromList . traverse (\(k, v) -> (coerce @Text @k k, ) <$> parseJSON v Aeson.<?> Aeson.Key k) . HashMap.toList
|
||||
Aeson.FromJSONKeyText f -> Aeson.withObject "HashMap" $
|
||||
fmap MergeHashMap . HashMap.foldrWithKey (\k v m -> HashMap.insertWith (<>) (f k) <$> parseJSON v Aeson.<?> Aeson.Key k <*> m) (pure mempty)
|
||||
Aeson.FromJSONKeyTextParser f -> Aeson.withObject "HashMap" $
|
||||
@ -1888,7 +1895,7 @@ instance (Hashable k, FromJSON v, FromJSONKey k, Semigroup v) => FromJSON (Merge
|
||||
|
||||
parseJSONElemAtIndex :: (Value -> Aeson.Parser a) -> Int -> Vector Value -> Aeson.Parser a
|
||||
parseJSONElemAtIndex p idx ary = p (V.unsafeIndex ary idx) Aeson.<?> Aeson.Index idx
|
||||
|
||||
-}
|
||||
|
||||
newtype MergeMap k v = MergeMap { unMergeMap :: Map k v }
|
||||
deriving (Show, Generic, Data)
|
||||
@ -1918,7 +1925,7 @@ instance (Ord k, Semigroup v) => Semigroup (MergeMap k v) where
|
||||
(MergeMap a) <> (MergeMap b) = MergeMap $ Map.unionWith (<>) a b
|
||||
instance (Ord k, Semigroup v) => Monoid (MergeMap k v) where
|
||||
mempty = MergeMap Map.empty
|
||||
instance (Ord k, FromJSON v, FromJSONKey k, Semigroup v) => FromJSON (MergeMap k v) where
|
||||
{-instance (Ord k, FromJSON v, FromJSONKey k, Semigroup v) => FromJSON (MergeMap k v) where
|
||||
parseJSON = case Aeson.fromJSONKey of
|
||||
Aeson.FromJSONKeyCoerce -> Aeson.withObject "Map ~Text" $
|
||||
coerce @(Aeson.Parser (Map k v)) @(Aeson.Parser (MergeMap k v)) . fmap Map.fromList . traverse (\(k, v) -> (coerce @Text @k k, ) <$> parseJSON v Aeson.<?> Aeson.Key k) . HashMap.toList
|
||||
@ -1942,7 +1949,8 @@ instance (Ord k, FromJSON v, FromJSONKey k, Semigroup v) => FromJSON (MergeMap k
|
||||
|
||||
parseJSONElemAtIndex :: (Value -> Aeson.Parser a) -> Int -> Vector Value -> Aeson.Parser a
|
||||
parseJSONElemAtIndex p idx ary = p (V.unsafeIndex ary idx) Aeson.<?> Aeson.Index idx
|
||||
|
||||
-}
|
||||
|
||||
--------------
|
||||
-- FilePath --
|
||||
--------------
|
||||
|
||||
Reference in New Issue
Block a user