packages feed

pinch-0.2.0.0: tests/Pinch/Internal/Util.hs

module Pinch.Internal.Util
    ( vbin
    , vbool
    , vbyt
    , vdub
    , vi16
    , vi32
    , vi64
    , vlist
    , vmap
    , vsome
    , vstruct
    , vset

    , vstruct_
    , vset_
    , vlist_
    , vmap_
    , vdub_
    , vbyt_
    , vi16_
    , vi32_
    , vi64_
    , vbool_
    , vbin_
    ) where

import Data.ByteString (ByteString)
import Data.Int

import qualified Data.HashMap.Strict as HM

import Pinch.Internal.TType
import Pinch.Internal.Value

import qualified Pinch.Internal.FoldList as FL

vsome :: IsTType a => Value a -> SomeValue
vsome = SomeValue

vstruct_ :: [(Int16, SomeValue)] -> SomeValue
vstruct_ = vsome . vstruct

vset_ :: IsTType a => [Value a] -> SomeValue
vset_ = vsome . vset

vlist_ :: IsTType a => [Value a] -> SomeValue
vlist_ = vsome . vlist

vmap_ :: (IsTType k, IsTType v) => [(Value k, Value v)] -> SomeValue
vmap_ = vsome . vmap

vdub_ :: Double -> SomeValue
vdub_ = vsome . vdub

vbyt_ :: Int8 -> SomeValue
vbyt_ = vsome . vbyt

vi16_ :: Int16 -> SomeValue
vi16_ = vsome . vi16

vi32_ :: Int32 -> SomeValue
vi32_ = vsome . vi32

vi64_ :: Int64 -> SomeValue
vi64_ = vsome . vi64

vbool_ :: Bool -> SomeValue
vbool_ = vsome . vbool

vbin_ :: ByteString -> SomeValue
vbin_ = vsome . vbin

vstruct :: [(Int16, SomeValue)] -> Value TStruct
vstruct = VStruct . HM.fromList

vset :: IsTType a => [Value a] -> Value TSet
vset = VSet . FL.fromFoldable

vlist :: IsTType a => [Value a] -> Value TList
vlist = VList . FL.fromFoldable

vmap :: (IsTType k, IsTType v) => [(Value k, Value v)] -> Value TMap
vmap = VMap . FL.fromFoldable . map (uncurry MapItem)

vdub :: Double -> Value TDouble
vdub = VDouble

vbyt :: Int8 -> Value TByte
vbyt = VByte

vi16 :: Int16 -> Value TInt16
vi16 = VInt16

vi32 :: Int32 -> Value TInt32
vi32 = VInt32

vi64 :: Int64 -> Value TInt64
vi64 = VInt64

vbool :: Bool -> Value TBool
vbool = VBool

vbin :: ByteString -> Value TBinary
vbin = VBinary