htestu-0.1.0.0: src/Test/HTestU/BatteryResult.hsc
{-# LANGUAGE ForeignFunctionInterface #-}
{-# LANGUAGE CPP #-}
module Test.HTestU.BatteryResult
( BatteryResultStruct(..)
) where
import Foreign.C.Types (CInt(..), CDouble(..))
import Foreign.Ptr (Ptr)
import Foreign.Storable
#include "bbattery.h"
-- | Structure holding an array of p-values after performing the testing
-- and their number
data BatteryResultStruct = BR {
pValues :: Ptr CDouble,
testNumber :: CInt
} deriving (Eq, Show)
#let alignment t = "%lu", (unsigned long)offsetof(struct {char x__; t (y__); }, y__)
instance Storable BatteryResultStruct where
sizeOf _ = (#size BatteryResult)
alignment _ = #{alignment BatteryResult}
peek ptr = do
pValues <- (#peek BatteryResult, pValues) ptr
testNumber <- (#peek BatteryResult, testNumber) ptr
return $ BR pValues testNumber
poke ptr (BR pValues testNumber) = do
#{poke BatteryResult, pValues} ptr pValues
#{poke BatteryResult, testNumber} ptr testNumber