packages feed

poppy-1.0.0: src/Poppy/Internal/Select.hs

{-# OPTIONS_HADDOCK hide #-}
-- | Column picking for generated @*Select@ records. Default is 'OmitSelect' (full row).
module Poppy.Internal.Select
  ( OmitSelect (..),
    Picked (..),
    picked,
  )
where

-- | @select_@ default: every column, result is the full row type.
data OmitSelect = OmitSelect
  deriving (Show, Eq)

-- | One column in a partial select.
data Picked a
  = Picked a
  | Skipped
  deriving (Show, Eq)

picked :: Bool -> a -> Picked a
picked True value = Picked value
picked False _ = Skipped