@@ -4,14 +4,19 @@
4{-# OPTIONS_GHC -Wno-orphans #-}
4{-# OPTIONS_GHC -Wno-orphans #-}
6module Data.Id
6module Data.Id
7− ( Id, mkId, unId, randomId, unsafeIdTagConvert, coerceId, _Id, nilId
7+ ( Id, mkId, unId, randomId, unsafeIdTagConvert, coerceId, nilId
8− , IntId, mkIntId, unIntId, unsafeIntIdTagConvert, coerceIntId, _IntId
8+ , IntId, mkIntId, unIntId, unsafeIntIdTagConvert, coerceIntId
9− , Name, mkName, unName, unsafeNameTagConvert, coerceName, _Name
9+ , Name, mkName, unName, unsafeNameTagConvert, coerceName
13import Control.DeepSeq (NFData)
16import Control.DeepSeq (NFData)
14import Control.Lens
18import Control.Lens
15import Control.Monad
20import Control.Monad
16import Data.Aeson (FromJSON, FromJSONKey, ToJSON, ToJSONKey)
21import Data.Aeson (FromJSON, FromJSONKey, ToJSON, ToJSONKey)
17import Data.Binary (Binary)
22import Data.Binary (Binary)
@@ -19,7 +24,9 @@ import Data.Coerce (coerce)
19import Data.Data
24import Data.Data
20import Data.Hashable (Hashable)
25import Data.Hashable (Hashable)
21import Data.Int (Int64)
26import Data.Int (Int64)
22import Data.OpenApi
28import Data.OpenApi
23import Data.String
30import Data.String
24import Data.Text as T
31import Data.Text as T
25import Data.UUID (UUID)
32import Data.UUID (UUID)
@@ -61,13 +68,14 @@ newtype Id t = Id { unId :: UUID }
64− , FromJSON, ToJSON, NFData, Hashable, FromJSONKey, ToJSONKey, ToSchema
71+ , FromJSON, ToJSON, NFData, Hashable, FromJSONKey, ToJSONKey
73+ , ToSchema, ToParamSchema
65− , ToParamSchema, FromHttpApiData, ToHttpApiData )
75+ , FromHttpApiData, ToHttpApiData )
67type role Id nominal
77type role Id nominal
71mkId :: forall s. UUID -> Id s
79mkId :: forall s. UUID -> Id s
72mkId = coerce
80mkId = coerce
73{-# INLINE mkId #-}
81{-# INLINE mkId #-}
@@ -161,14 +169,15 @@ newtype IntId t = IntId { unIntId :: Int64 }
164− , FromJSON, ToJSON, NFData, Hashable, FromJSONKey, ToJSONKey, ToSchema
172+ , FromJSON, ToJSON, NFData, Hashable, FromJSONKey, ToJSONKey
174+ , ToSchema, ToParamSchema
165− , ToParamSchema, FromHttpApiData, ToHttpApiData, PathPiece, Arbitrary
176+ , FromHttpApiData, ToHttpApiData, PathPiece, Arbitrary
166 , Num, Integral, Real, Enum )
177 , Num, Integral, Real, Enum )
168type role IntId nominal
179type role IntId nominal
172mkIntId :: forall s. Integer -> IntId s
181mkIntId :: forall s. Integer -> IntId s
173mkIntId = fromInteger
182mkIntId = fromInteger
174{-# INLINE mkIntId #-}
183{-# INLINE mkIntId #-}
@@ -213,14 +222,15 @@ newtype Name t = Name { unName :: Text }
216− , FromJSON, ToJSON, NFData, Hashable, FromJSONKey, ToJSONKey, ToSchema
225+ , FromJSON, ToJSON, NFData, Hashable, FromJSONKey, ToJSONKey
227+ , ToSchema, ToParamSchema
217− , ToParamSchema, FromHttpApiData, ToHttpApiData, PathPiece
229+ , FromHttpApiData, ToHttpApiData, PathPiece
218 , IsString, Semigroup, Monoid )
230 , IsString, Semigroup, Monoid )
220type role Name nominal
232type role Name nominal
224mkName :: forall s. Text -> Name s
234mkName :: forall s. Text -> Name s
225mkName = coerce
235mkName = coerce
226{-# INLINE mkName #-}
236{-# INLINE mkName #-}
@@ -245,3 +255,9 @@ coerceName = coerce
245{-# INLINE coerceName #-}
255{-# INLINE coerceName #-}
246unsafeNameTagConvert = coerce
256unsafeNameTagConvert = coerce
247{-# INLINE unsafeNameTagConvert #-}
257{-# INLINE unsafeNameTagConvert #-}