From 8cfdd286517e0a9ca99dd31b9d220560adc6c93d Mon Sep 17 00:00:00 2001 From: Gregor Kleen Date: Wed, 2 Jun 2021 17:23:48 +0200 Subject: [PATCH] fix: valid binary ci instance --- package.yaml | 1 + src/Data/CaseInsensitive/Instances.hs | 7 +++++++ src/Database/Persist/Class/Instances.hs | 2 +- src/Database/Persist/Types/Instances.hs | 2 +- src/Import/NoModel.hs | 11 ++++++++++- 5 files changed, 20 insertions(+), 3 deletions(-) diff --git a/package.yaml b/package.yaml index d86b5fcea..3ff9fdf63 100644 --- a/package.yaml +++ b/package.yaml @@ -63,6 +63,7 @@ dependencies: - cryptoids-class - binary - binary-instances + - binary-orphans - mtl - esqueleto >=3.1.0 - mime-types diff --git a/src/Data/CaseInsensitive/Instances.hs b/src/Data/CaseInsensitive/Instances.hs index eadbd421b..cdde140f5 100644 --- a/src/Data/CaseInsensitive/Instances.hs +++ b/src/Data/CaseInsensitive/Instances.hs @@ -31,6 +31,9 @@ import qualified Data.Csv as Csv import Utils.Persist import Data.Proxy +import Data.Binary (Binary) +import qualified Data.Binary as Binary + instance PersistField (CI Text) where toPersistValue ciText = PersistLiteralEscaped . Text.encodeUtf8 $ CI.original ciText @@ -108,3 +111,7 @@ instance Csv.ToField s => Csv.ToField (CI s) where instance (CI.FoldCase s, Csv.FromField s) => Csv.FromField (CI s) where parseField = fmap CI.mk . Csv.parseField + +instance (CI.FoldCase s, Binary s) => Binary (CI s) where + get = CI.mk <$> Binary.get + put = Binary.put . CI.original diff --git a/src/Database/Persist/Class/Instances.hs b/src/Database/Persist/Class/Instances.hs index 657a86800..24eb0902c 100644 --- a/src/Database/Persist/Class/Instances.hs +++ b/src/Database/Persist/Class/Instances.hs @@ -13,7 +13,7 @@ import Database.Persist.Sql import Data.Binary (Binary) import qualified Data.Binary as Binary -import Data.Binary.Instances () +import Data.Binary.Instances.Time as Import () import qualified Data.Map as Map diff --git a/src/Database/Persist/Types/Instances.hs b/src/Database/Persist/Types/Instances.hs index cf05894f2..3c79521d1 100644 --- a/src/Database/Persist/Types/Instances.hs +++ b/src/Database/Persist/Types/Instances.hs @@ -12,7 +12,7 @@ import Database.Persist.Types import Data.Time.Calendar.Instances () import Data.Time.LocalTime.Instances () import Data.Time.Clock.Instances () -import Data.Binary.Instances () +import Data.Binary.Instances.Time as Import () import Data.Binary (Binary) diff --git a/src/Import/NoModel.hs b/src/Import/NoModel.hs index c8854d786..951855d26 100644 --- a/src/Import/NoModel.hs +++ b/src/Import/NoModel.hs @@ -73,7 +73,16 @@ import Data.Text.Encoding.Error as Import(UnicodeException(..)) import Data.Semigroup as Import (Min(..), Max(..)) import Data.Monoid as Import (Last(..), First(..), Any(..), All(..), Sum(..), Endo(..), Alt(..), Dual(..), Ap(..)) import Data.Binary as Import (Binary) -import Data.Binary.Instances as Import () + +import Data.Binary.Orphans as Import () +import Data.Binary.Instances.Aeson as Import () +import Data.Binary.Instances.Hashable as Import () +import Data.Binary.Instances.Scientific as Import () +import Data.Binary.Instances.Tagged as Import () +import Data.Binary.Instances.Text as Import () +import Data.Binary.Instances.Time as Import () +import Data.Binary.Instances.UnorderedContainers as Import () +import Data.Binary.Instances.Vector as Import () import Data.Dynamic as Import (Dynamic) import Data.Dynamic.Lens as Import