on master help sign in
fix bug, make cassava optional
commitb8ee3fa01934121905a049304216a59b0ab2f34e authorVille Tirronen <ville@typeable.io> dateThu 28 Jul 2022, 12:30 (4 years ago) parent7994085
2 files changed+19−3
id.cabal+7−1 src/Data/Id.hs+12−2
id.cabal+7−1
@@ -4,6 +4,11 @@ name: id
44version: 0.1.0.0
55license-file: LICENSE
66
7+Flag cassava
8+ Description: Enable Postgresql support
9+ Default: True
10+ Manual: False
11+
712
813Flag postgres
914 Description: Enable Postgresql support
@@ -42,9 +47,10 @@ library
4247 build-depends:
4348 postgresql-simple
4449 cpp-options: -DUSE_POSTGRES
45− if !impl(ghcjs)
50+ if flag(cassava) && !impl(ghcjs)
4651 build-depends:
4752 cassava
53+ cpp-options: -DUSE_CASSAVA
4854 if flag(flat)
4955 build-depends:
5056 flat,
src/Data/Id.hs+12−2
@@ -25,7 +25,9 @@ import Data.UUID (UUID)
2525import qualified Data.UUID as UUID
2626import qualified Data.UUID.V4 as UUID.V4
2727#ifndef ghcjs_HOST_OS
28+#ifdef USE_CASSAVA
2829import Data.Csv as Csv hiding(Name)
30+#endif
2931#ifdef USE_POSTGRES
3032import Database.PostgreSQL.Simple.FromField as PG (FromField)
3133import Database.PostgreSQL.Simple.ToField as PG (ToField)
@@ -102,12 +104,14 @@ instance PathPiece (Id t) where
102104
103105#ifndef ghcjs_HOST_OS
104106
107+#ifdef USE_CASSAVA
105108instance Csv.FromField (Id tag) where
106109 parseField = parseField
107110 >=> fmap mkId . maybe (fail "invalid UUID in CSV") pure . UUID.fromText
108111
109112instance Csv.ToField (Id tag) where
110113 toField = Csv.toField . UUID.toText . coerce
114+#endif
111115
112116#endif
113117
@@ -135,7 +139,10 @@ newtype IntId t = IntId { unIntId :: Integer }
135139 ( Eq, Ord, Binary
136140#ifndef ghcjs_HOST_OS
137141#ifdef USE_POSTGRES
138− , PG.ToField, PG.FromField, Csv.ToField, Csv.FromField
142+ , PG.ToField, PG.FromField
143+#endif
144+#ifdef USE_CASSAVA
145+ , Csv.ToField, Csv.FromField
139146#endif
140147#endif
141148 , FromJSON, ToJSON, NFData, Hashable, FromJSONKey, ToJSONKey, ToSchema
@@ -175,7 +182,10 @@ newtype Name t = Name { unName :: Text }
175182 ( Eq, Ord, Binary
176183#ifndef ghcjs_HOST_OS
177184#ifdef USE_POSTGRES
178− , PG.ToField, PG.FromField, Csv.ToField, Csv.FromField
185+ , PG.ToField, PG.FromField
186+#endif
187+#ifdef USE_CASSAVA
188+ , Csv.ToField, Csv.FromField
179189#endif
180190#endif
181191 , FromJSON, ToJSON, NFData, Hashable, FromJSONKey, ToJSONKey, ToSchema