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)
type Record :: Type
type Record = V.Vector Bolt
lookupField :: V.Vector T.Text -> T.Text -> Record -> Maybe Bolt
lookupField :: Vector Text -> Text -> Record -> Maybe Bolt
lookupField Vector Text
columns Text
name Record
record =
Text -> Vector Text -> Maybe Int
forall a. Eq a => a -> Vector a -> Maybe Int
V.elemIndex Text
name Vector Text
columns Maybe Int -> (Int -> Maybe Bolt) -> Maybe Bolt
forall a b. Maybe a -> (a -> Maybe b) -> Maybe b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= (Record
record Record -> Int -> Maybe Bolt
forall a. Vector a -> Int -> Maybe a
V.!?)