Rename keyE to valJ and fix implementation.
As Felipe points out in the PR comments, the implementation can be simplified to "val . unValue" but the type signature on the function still prevents anything non-sensical happening. See: https://github.com/prowdsponsor/esqueleto/pull/69
This commit is contained in:
parent
0b830771ea
commit
41698518c9
@ -81,7 +81,7 @@ module Database.Esqueleto
|
|||||||
|
|
||||||
-- * Helpers
|
-- * Helpers
|
||||||
, valkey
|
, valkey
|
||||||
, keyE
|
, valJ
|
||||||
|
|
||||||
-- * Re-exports
|
-- * Re-exports
|
||||||
-- $reexports
|
-- $reexports
|
||||||
@ -377,14 +377,16 @@ valkey :: Esqueleto query expr backend =>
|
|||||||
valkey = val . Key . PersistInt64
|
valkey = val . Key . PersistInt64
|
||||||
|
|
||||||
|
|
||||||
-- | Given a value, lift the Key for that value into the query expression.
|
-- | @valJ@ is like @val@ but for something that is already a @Value@. The use
|
||||||
keyE :: Esqueleto query expr backend =>
|
-- case it was written for was, given a @Value@ lift the @Key@ for that @Value@
|
||||||
|
-- into the query expression in a type safe way. However, the implementation is
|
||||||
|
-- more generic than that so we call it @valJ@.
|
||||||
|
-- Its important to note that the input entity and the output entity are
|
||||||
|
-- constrained to be the same by the type signature on the function.
|
||||||
|
-- (<https://github.com/prowdsponsor/esqueleto/pull/69>)
|
||||||
|
valJ :: Esqueleto query expr backend =>
|
||||||
Value (Key entity) -> expr (Value (Key entity))
|
Value (Key entity) -> expr (Value (Key entity))
|
||||||
keyE v =
|
valJ = val . unValue
|
||||||
valkey $
|
|
||||||
case (unKey . unValue) v of
|
|
||||||
PersistInt64 x -> x
|
|
||||||
_ -> error "Esqueleto.keyE: Impossible!"
|
|
||||||
|
|
||||||
|
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user