packages feed

bolty-0.1.0.0: src/Database/Bolty/Record.hs

-- | Query result records.
module Database.Bolty.Record
  ( Record
  , lookupField
  ) where

import           Data.Kind    (Type)
import qualified Data.Text   as T
import qualified Data.Vector as V

import           Database.Bolty.Value.Type (Bolt)


-- | A single result row: a vector of 'Bolt' values, one per column.
type Record :: Type
type Record = V.Vector Bolt


-- | Look up a field value by column name, given the column name vector
-- from the query's SuccessRun response.
lookupField :: V.Vector T.Text -> T.Text -> Record -> Maybe Bolt
lookupField columns name record =
  V.elemIndex name columns >>= (record V.!?)