{-# LANGUAGE FlexibleContexts #-}
module Opaleye.Values(
valuesSafe,
valuesExplicit,
valuesSafeExplicit,
valuesUnsafeExplicit,
V.ValuesspecSafe,
V.valuesspecField,
values,
valuesUnsafe,
) where
import qualified Opaleye.Internal.QueryArr as Q
import Opaleye.Internal.Values as V
import qualified Opaleye.Internal.Unpackspec as U
import qualified Opaleye.Select as S
import Data.Profunctor.Product.Default (Default, def)
values :: (Default V.Valuesspec fields fields,
Default U.Unpackspec fields fields) =>
[fields] -> S.Select fields
values = valuesExplicit def def
valuesExplicit :: U.Unpackspec fields fields'
-> V.Valuesspec fields fields'
-> [fields] -> S.Select fields'
valuesExplicit unpack valuesspec fields =
Q.productQueryArr (V.valuesU unpack valuesspec fields)
valuesSafe :: Default V.ValuesspecSafe fields fields =>
[fields] -> S.Select fields
valuesSafe = valuesSafeExplicit def
valuesSafeExplicit :: V.ValuesspecSafe fields fields'
-> [fields] -> S.Select fields'
valuesSafeExplicit valuesspec fields =
Q.productQueryArr (V.valuesUSafe valuesspec fields)
valuesUnsafe :: (Default V.Valuesspec fields fields,
Default U.Unpackspec fields fields) =>
[fields] -> S.Select fields
valuesUnsafe = values
valuesUnsafeExplicit :: U.Unpackspec fields fields'
-> V.Valuesspec fields fields'
-> [fields] -> S.Select fields'
valuesUnsafeExplicit = valuesExplicit