{-# OPTIONS_GHC -Wall -fno-warn-orphans #-}
{-# Language FlexibleInstances #-}
{-# Language MultiParamTypeClasses #-}
module Casadi.Internal.CToolsInstances where
import Foreign.C.Types
import Foreign.Ptr ( Ptr )
import qualified Data.Vector as V
import Casadi.Internal.MarshalTypes
import Casadi.Internal.Marshal
import Casadi.Internal.CToolsImports
-- ("int","CInt",Nothing,["Int","Bool"])
instance Marshal (V.Vector CInt) (Ptr (StdVec CInt)) where
marshal = newStorableVec c_newVecCInt
marshalFree = const c_deleteVecCInt
instance Marshal (V.Vector Int) (Ptr (StdVec CInt)) where
marshal = newStorableVec c_newVecCInt . (V.map hsToC)
marshalFree = const c_deleteVecCInt
instance Marshal (V.Vector Bool) (Ptr (StdVec CInt)) where
marshal = newStorableVec c_newVecCInt . (V.map hsToC)
marshalFree = const c_deleteVecCInt
-- ("voidp","VoidP",Just "(Ptr a)",[])
instance Marshal (V.Vector (Ptr a)) (Ptr (StdVec (Ptr a))) where
marshal = newStorableVec c_newVecVoidP
marshalFree = const c_deleteVecVoidP
-- ("uchar","CUChar",Nothing,[])
instance Marshal (V.Vector CUChar) (Ptr (StdVec CUChar)) where
marshal = newStorableVec c_newVecCUChar
marshalFree = const c_deleteVecCUChar
-- ("double","CDouble",Nothing,["Double"])
instance Marshal (V.Vector CDouble) (Ptr (StdVec CDouble)) where
marshal = newStorableVec c_newVecCDouble
marshalFree = const c_deleteVecCDouble
instance Marshal (V.Vector Double) (Ptr (StdVec CDouble)) where
marshal = newStorableVec c_newVecCDouble . (V.map hsToC)
marshalFree = const c_deleteVecCDouble