Versionbump: Utils.hs: Template haskell fix; instance commented out for later version bump.
This commit is contained in:
parent
df89d4a379
commit
98626ecb4e
16
src/Utils.hs
16
src/Utils.hs
@ -2,6 +2,9 @@
|
|||||||
--
|
--
|
||||||
-- SPDX-License-Identifier: AGPL-3.0-or-later
|
-- 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 Utils
|
( module Utils
|
||||||
, module Data.Containers.ListUtils
|
, module Data.Containers.ListUtils
|
||||||
@ -157,6 +160,8 @@ import qualified Data.UUID as UUID
|
|||||||
|
|
||||||
import Data.Containers.ListUtils
|
import Data.Containers.ListUtils
|
||||||
|
|
||||||
|
import qualified Data.Aeson.KeyMap as KeyMap
|
||||||
|
|
||||||
{-# ANN module ("HLint: ignore Use asum" :: String) #-}
|
{-# ANN module ("HLint: ignore Use asum" :: String) #-}
|
||||||
|
|
||||||
|
|
||||||
@ -1665,7 +1670,7 @@ kmaclazy :: forall a string key ba chunk.
|
|||||||
-> KMAC a
|
-> KMAC a
|
||||||
kmaclazy str k = KMAC.finalize . KMAC.updates (KMAC.initialize @a str k) . toChunks
|
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`
|
-- ^ Hash of `mempty`
|
||||||
--
|
--
|
||||||
-- Computationally preferrable to computing the hash at runtime
|
-- 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
|
(MergeHashMap a) <> (MergeHashMap b) = MergeHashMap $ HashMap.unionWith (<>) a b
|
||||||
instance (Hashable k, Semigroup v) => Monoid (MergeHashMap k v) where
|
instance (Hashable k, Semigroup v) => Monoid (MergeHashMap k v) where
|
||||||
mempty = MergeHashMap HashMap.empty
|
mempty = MergeHashMap HashMap.empty
|
||||||
|
{-
|
||||||
instance (Hashable k, FromJSON v, FromJSONKey k, Semigroup v) => FromJSON (MergeHashMap k v) where
|
instance (Hashable k, FromJSON v, FromJSONKey k, Semigroup v) => FromJSON (MergeHashMap k v) where
|
||||||
parseJSON = case Aeson.fromJSONKey of
|
parseJSON = case Aeson.fromJSONKey of
|
||||||
Aeson.FromJSONKeyCoerce -> Aeson.withObject "HashMap ~Text" $
|
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" $
|
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)
|
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" $
|
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 :: (Value -> Aeson.Parser a) -> Int -> Vector Value -> Aeson.Parser a
|
||||||
parseJSONElemAtIndex p idx ary = p (V.unsafeIndex ary idx) Aeson.<?> Aeson.Index idx
|
parseJSONElemAtIndex p idx ary = p (V.unsafeIndex ary idx) Aeson.<?> Aeson.Index idx
|
||||||
|
-}
|
||||||
|
|
||||||
newtype MergeMap k v = MergeMap { unMergeMap :: Map k v }
|
newtype MergeMap k v = MergeMap { unMergeMap :: Map k v }
|
||||||
deriving (Show, Generic, Data)
|
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
|
(MergeMap a) <> (MergeMap b) = MergeMap $ Map.unionWith (<>) a b
|
||||||
instance (Ord k, Semigroup v) => Monoid (MergeMap k v) where
|
instance (Ord k, Semigroup v) => Monoid (MergeMap k v) where
|
||||||
mempty = MergeMap Map.empty
|
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
|
parseJSON = case Aeson.fromJSONKey of
|
||||||
Aeson.FromJSONKeyCoerce -> Aeson.withObject "Map ~Text" $
|
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
|
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,6 +1949,7 @@ instance (Ord k, FromJSON v, FromJSONKey k, Semigroup v) => FromJSON (MergeMap k
|
|||||||
|
|
||||||
parseJSONElemAtIndex :: (Value -> Aeson.Parser a) -> Int -> Vector Value -> Aeson.Parser a
|
parseJSONElemAtIndex :: (Value -> Aeson.Parser a) -> Int -> Vector Value -> Aeson.Parser a
|
||||||
parseJSONElemAtIndex p idx ary = p (V.unsafeIndex ary idx) Aeson.<?> Aeson.Index idx
|
parseJSONElemAtIndex p idx ary = p (V.unsafeIndex ary idx) Aeson.<?> Aeson.Index idx
|
||||||
|
-}
|
||||||
|
|
||||||
--------------
|
--------------
|
||||||
-- FilePath --
|
-- FilePath --
|
||||||
|
|||||||
Reference in New Issue
Block a user