@@ -4,9 +4,12 @@
44{-# OPTIONS_GHC -Wno-orphans #-}
55
66module Data.Id
7− ( Id, mkId, unId, randomId, unsafeIdTagConvert, coerceId, _Id, nilId
7+ ( Id, mkId, unId, unsafeIdTagConvert, coerceId, _Id, nilId
88 , IntId, mkIntId, unIntId, unsafeIntIdTagConvert, coerceIntId, _IntId
99 , Name, mkName, unName, unsafeNameTagConvert, coerceName, _Name
10+#ifdef USE_UUID
11+ , randomId
12+#endif
1013 )
1114 where
1215
@@ -20,15 +23,17 @@ import Data.Data
2023import Data.Hashable (Hashable)
2124import Data.String
2225import Data.Text as T
23−import Data.UUID (UUID)
24−import qualified Data.UUID as UUID
25−import qualified Data.UUID.V4 as UUID.V4
26+import Data.UUID.Types (UUID)
27+import qualified Data.UUID.Types as UUID
2628import GHC.TypeLits
2729import Prelude as P
2830import Text.ParserCombinators.ReadP
2931import Web.HttpApiData
3032import Web.PathPieces (PathPiece(..))
3133
34+#ifdef USE_UUID
35+import qualified Data.UUID.V4 as UUID.V4
36+#endif
3237#ifdef BACKEND
3338import Data.OpenApi
3439import Test.QuickCheck
@@ -71,9 +76,11 @@ mkId :: forall s. UUID -> Id s
7176mkId = coerce
7277{-# INLINE mkId #-}
7378
79+#ifdef USE_UUID
7480randomId :: forall s. IO (Id s)
7581randomId = coerce <$> UUID.V4.nextRandom
7682{-# INLINE randomId #-}
83+#endif
7784
7885instance KnownSymbol s => Show (Id s) where
7986 show (Id v) = "Id-" <> symbolVal (Proxy @s) <> "-" <> P.show v