casadi-bindings-1.8.0.0: Casadi/Wrappers/ForeignToolsInstances.hs
{-# OPTIONS_GHC -Wall -fno-warn-orphans #-}
{-# Language FlexibleInstances #-}
{-# Language MultiParamTypeClasses #-}
module Casadi.Wrappers.ForeignToolsInstances where
import Foreign.C.Types
import Foreign.Ptr ( Ptr )
import qualified Data.Vector as V
import Casadi.MarshalTypes
import Casadi.Marshal
import Casadi.Wrappers.ForeignToolsImports
instance Marshal (V.Vector CInt) (Ptr (CppVec CInt)) where
withMarshal = withMarshalStorableVec c_newVecCInt c_deleteVecCInt
instance Marshal (V.Vector Int) (Ptr (CppVec CInt)) where
withMarshal x = withMarshalStorableVec c_newVecCInt c_deleteVecCInt (V.map hsToC x)
instance Marshal (V.Vector (V.Vector Int)) (Ptr (CppVecVec CInt)) where
withMarshal x = withMarshalStorableVecVec c_newVecVecCInt c_deleteVecVecCInt (V.map (V.map hsToC) x)
instance Marshal (V.Vector (Ptr a)) (Ptr (CppVec (Ptr a))) where
withMarshal = withMarshalStorableVec c_newVecVoidP c_deleteVecVoidP
instance Marshal (V.Vector CUChar) (Ptr (CppVec CUChar)) where
withMarshal = withMarshalStorableVec c_newVecCUChar c_deleteVecCUChar
instance Marshal (V.Vector CDouble) (Ptr (CppVec CDouble)) where
withMarshal = withMarshalStorableVec c_newVecCDouble c_deleteVecCDouble
instance Marshal (V.Vector Double) (Ptr (CppVec CDouble)) where
withMarshal x = withMarshalStorableVec c_newVecCDouble c_deleteVecCDouble (V.map hsToC x)
instance Marshal (V.Vector (V.Vector Double)) (Ptr (CppVecVec CDouble)) where
withMarshal x = withMarshalStorableVecVec c_newVecVecCDouble c_deleteVecVecCDouble (V.map (V.map hsToC) x)