fficxx-runtime-0.3: Runtime for fficxx-generated library

Copyright(c) 2011-2017 Ian-Woo Kim
LicenseBSD3
MaintainerIan-Woo Kim <ianwookim@gmail.com>
Stabilityexperimental
PortabilityGHC
Safe HaskellSafe
LanguageHaskell98

FFICXX.Runtime.Cast

Description

 

Documentation

class Castable a b where Source #

Minimal complete definition

cast, uncast

Methods

cast :: a -> (b -> IO r) -> IO r Source #

uncast :: b -> (a -> IO r) -> IO r Source #

Instances

Castable Double CDouble Source # 

Methods

cast :: Double -> (CDouble -> IO r) -> IO r Source #

uncast :: CDouble -> (Double -> IO r) -> IO r Source #

Castable Int CInt Source # 

Methods

cast :: Int -> (CInt -> IO r) -> IO r Source #

uncast :: CInt -> (Int -> IO r) -> IO r Source #

Castable Word CUInt Source # 

Methods

cast :: Word -> (CUInt -> IO r) -> IO r Source #

uncast :: CUInt -> (Word -> IO r) -> IO r Source #

Castable Word8 CChar Source # 

Methods

cast :: Word8 -> (CChar -> IO r) -> IO r Source #

uncast :: CChar -> (Word8 -> IO r) -> IO r Source #

Castable () () Source # 

Methods

cast :: () -> (() -> IO r) -> IO r Source #

uncast :: () -> (() -> IO r) -> IO r Source #

Castable CInt CInt Source # 

Methods

cast :: CInt -> (CInt -> IO r) -> IO r Source #

uncast :: CInt -> (CInt -> IO r) -> IO r Source #

Castable CUInt CUInt Source # 

Methods

cast :: CUInt -> (CUInt -> IO r) -> IO r Source #

uncast :: CUInt -> (CUInt -> IO r) -> IO r Source #

Castable CLong CLong Source # 

Methods

cast :: CLong -> (CLong -> IO r) -> IO r Source #

uncast :: CLong -> (CLong -> IO r) -> IO r Source #

Castable CULong CULong Source # 

Methods

cast :: CULong -> (CULong -> IO r) -> IO r Source #

uncast :: CULong -> (CULong -> IO r) -> IO r Source #

Castable CDouble CDouble Source # 

Methods

cast :: CDouble -> (CDouble -> IO r) -> IO r Source #

uncast :: CDouble -> (CDouble -> IO r) -> IO r Source #

Castable ByteString CString Source # 

Methods

cast :: ByteString -> (CString -> IO r) -> IO r Source #

uncast :: CString -> (ByteString -> IO r) -> IO r Source #

Castable [Double] (Ptr CDouble) Source # 

Methods

cast :: [Double] -> (Ptr CDouble -> IO r) -> IO r Source #

uncast :: Ptr CDouble -> ([Double] -> IO r) -> IO r Source #

Castable [Int] (Ptr CInt) Source # 

Methods

cast :: [Int] -> (Ptr CInt -> IO r) -> IO r Source #

uncast :: Ptr CInt -> ([Int] -> IO r) -> IO r Source #

Castable [ByteString] (Ptr CString) Source # 

Methods

cast :: [ByteString] -> (Ptr CString -> IO r) -> IO r Source #

uncast :: Ptr CString -> ([ByteString] -> IO r) -> IO r Source #

Castable (Ptr ()) (Ptr ()) Source # 

Methods

cast :: Ptr () -> (Ptr () -> IO r) -> IO r Source #

uncast :: Ptr () -> (Ptr () -> IO r) -> IO r Source #

Castable (Ptr CString) (Ptr CString) Source # 

Methods

cast :: Ptr CString -> (Ptr CString -> IO r) -> IO r Source #

uncast :: Ptr CString -> (Ptr CString -> IO r) -> IO r Source #

Castable (Ptr CChar) (Ptr CChar) Source # 

Methods

cast :: Ptr CChar -> (Ptr CChar -> IO r) -> IO r Source #

uncast :: Ptr CChar -> (Ptr CChar -> IO r) -> IO r Source #

Castable (Ptr CInt) (Ptr CInt) Source # 

Methods

cast :: Ptr CInt -> (Ptr CInt -> IO r) -> IO r Source #

uncast :: Ptr CInt -> (Ptr CInt -> IO r) -> IO r Source #

Castable (Ptr CUInt) (Ptr CUInt) Source # 

Methods

cast :: Ptr CUInt -> (Ptr CUInt -> IO r) -> IO r Source #

uncast :: Ptr CUInt -> (Ptr CUInt -> IO r) -> IO r Source #

Castable (Ptr CLong) (Ptr CLong) Source # 

Methods

cast :: Ptr CLong -> (Ptr CLong -> IO r) -> IO r Source #

uncast :: Ptr CLong -> (Ptr CLong -> IO r) -> IO r Source #

Castable (Ptr CULong) (Ptr CULong) Source # 

Methods

cast :: Ptr CULong -> (Ptr CULong -> IO r) -> IO r Source #

uncast :: Ptr CULong -> (Ptr CULong -> IO r) -> IO r Source #

Castable (Ptr CDouble) (Ptr CDouble) Source # 

Methods

cast :: Ptr CDouble -> (Ptr CDouble -> IO r) -> IO r Source #

uncast :: Ptr CDouble -> (Ptr CDouble -> IO r) -> IO r Source #

class FPtr a where Source #

Minimal complete definition

get_fptr, cast_fptr_to_obj

Associated Types

type Raw a :: * Source #

Methods

get_fptr :: a -> Ptr (Raw a) Source #

cast_fptr_to_obj :: Ptr (Raw a) -> a Source #

class FunPtrWrappable a where Source #

Minimal complete definition

fptrWrap, wrap

Associated Types

type FunPtrHsType a :: * Source #

type FunPtrType a :: * Source #

data FunPtrWrapped a :: * Source #

xformnull :: Castable a ca => IO ca -> IO a Source #

xform0 :: (Castable a ca, Castable y cy) => (ca -> IO cy) -> a -> IO y Source #

xform1 :: (Castable a ca, Castable x1 cx1, Castable y cy) => (ca -> cx1 -> IO cy) -> a -> x1 -> IO y Source #

xform2 :: (Castable a ca, Castable x1 cx1, Castable x2 cx2, Castable y cy) => (ca -> cx1 -> cx2 -> IO cy) -> a -> x1 -> x2 -> IO y Source #

xform3 :: (Castable a ca, Castable x1 cx1, Castable x2 cx2, Castable x3 cx3, Castable y cy) => (ca -> cx1 -> cx2 -> cx3 -> IO cy) -> a -> x1 -> x2 -> x3 -> IO y Source #

xform4 :: (Castable a ca, Castable x1 cx1, Castable x2 cx2, Castable x3 cx3, Castable x4 cx4, Castable y cy) => (ca -> cx1 -> cx2 -> cx3 -> cx4 -> IO cy) -> a -> x1 -> x2 -> x3 -> x4 -> IO y Source #

xform5 :: (Castable a ca, Castable x1 cx1, Castable x2 cx2, Castable x3 cx3, Castable x4 cx4, Castable x5 cx5, Castable y cy) => (ca -> cx1 -> cx2 -> cx3 -> cx4 -> cx5 -> IO cy) -> a -> x1 -> x2 -> x3 -> x4 -> x5 -> IO y Source #

xform6 :: (Castable a ca, Castable x1 cx1, Castable x2 cx2, Castable x3 cx3, Castable x4 cx4, Castable x5 cx5, Castable x6 cx6, Castable y cy) => (ca -> cx1 -> cx2 -> cx3 -> cx4 -> cx5 -> cx6 -> IO cy) -> a -> x1 -> x2 -> x3 -> x4 -> x5 -> x6 -> IO y Source #

xform7 :: (Castable a ca, Castable x1 cx1, Castable x2 cx2, Castable x3 cx3, Castable x4 cx4, Castable x5 cx5, Castable x6 cx6, Castable x7 cx7, Castable y cy) => (ca -> cx1 -> cx2 -> cx3 -> cx4 -> cx5 -> cx6 -> cx7 -> IO cy) -> a -> x1 -> x2 -> x3 -> x4 -> x5 -> x6 -> x7 -> IO y Source #

xform8 :: (Castable a ca, Castable x1 cx1, Castable x2 cx2, Castable x3 cx3, Castable x4 cx4, Castable x5 cx5, Castable x6 cx6, Castable x7 cx7, Castable x8 cx8, Castable y cy) => (ca -> cx1 -> cx2 -> cx3 -> cx4 -> cx5 -> cx6 -> cx7 -> cx8 -> IO cy) -> a -> x1 -> x2 -> x3 -> x4 -> x5 -> x6 -> x7 -> x8 -> IO y Source #

xform9 :: (Castable a ca, Castable x1 cx1, Castable x2 cx2, Castable x3 cx3, Castable x4 cx4, Castable x5 cx5, Castable x6 cx6, Castable x7 cx7, Castable x8 cx8, Castable x9 cx9, Castable y cy) => (ca -> cx1 -> cx2 -> cx3 -> cx4 -> cx5 -> cx6 -> cx7 -> cx8 -> cx9 -> IO cy) -> a -> x1 -> x2 -> x3 -> x4 -> x5 -> x6 -> x7 -> x8 -> x9 -> IO y Source #

xform10 :: (Castable a ca, Castable x1 cx1, Castable x2 cx2, Castable x3 cx3, Castable x4 cx4, Castable x5 cx5, Castable x6 cx6, Castable x7 cx7, Castable x8 cx8, Castable x9 cx9, Castable x10 cx10, Castable y cy) => (ca -> cx1 -> cx2 -> cx3 -> cx4 -> cx5 -> cx6 -> cx7 -> cx8 -> cx9 -> cx10 -> IO cy) -> a -> x1 -> x2 -> x3 -> x4 -> x5 -> x6 -> x7 -> x8 -> x9 -> x10 -> IO y Source #

xform11 :: (Castable a ca, Castable x1 cx1, Castable x2 cx2, Castable x3 cx3, Castable x4 cx4, Castable x5 cx5, Castable x6 cx6, Castable x7 cx7, Castable x8 cx8, Castable x9 cx9, Castable x10 cx10, Castable x11 cx11, Castable y cy) => (ca -> cx1 -> cx2 -> cx3 -> cx4 -> cx5 -> cx6 -> cx7 -> cx8 -> cx9 -> cx10 -> cx11 -> IO cy) -> a -> x1 -> x2 -> x3 -> x4 -> x5 -> x6 -> x7 -> x8 -> x9 -> x10 -> x11 -> IO y Source #