fficxx-runtime-0.5: 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 # 
Instance details

Defined in FFICXX.Runtime.Cast

Methods

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

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

Castable Int CInt Source # 
Instance details

Defined in FFICXX.Runtime.Cast

Methods

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

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

Castable Word CUInt Source # 
Instance details

Defined in FFICXX.Runtime.Cast

Methods

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

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

Castable Word8 CChar Source # 
Instance details

Defined in FFICXX.Runtime.Cast

Methods

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

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

Castable () () Source # 
Instance details

Defined in FFICXX.Runtime.Cast

Methods

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

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

Castable CInt CInt Source # 
Instance details

Defined in FFICXX.Runtime.Cast

Methods

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

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

Castable CUInt CUInt Source # 
Instance details

Defined in FFICXX.Runtime.Cast

Methods

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

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

Castable CLong CLong Source # 
Instance details

Defined in FFICXX.Runtime.Cast

Methods

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

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

Castable CULong CULong Source # 
Instance details

Defined in FFICXX.Runtime.Cast

Methods

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

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

Castable CDouble CDouble Source # 
Instance details

Defined in FFICXX.Runtime.Cast

Methods

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

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

Castable ByteString CString Source # 
Instance details

Defined in FFICXX.Runtime.Cast

Methods

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

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

Castable [Double] (Ptr CDouble) Source # 
Instance details

Defined in FFICXX.Runtime.Cast

Methods

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

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

Castable [Int] (Ptr CInt) Source # 
Instance details

Defined in FFICXX.Runtime.Cast

Methods

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

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

Castable [ByteString] (Ptr CString) Source # 
Instance details

Defined in FFICXX.Runtime.Cast

Methods

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

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

Castable (Ptr ()) (Ptr ()) Source # 
Instance details

Defined in FFICXX.Runtime.Cast

Methods

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

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

Castable (Ptr CString) (Ptr CString) Source # 
Instance details

Defined in FFICXX.Runtime.Cast

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 # 
Instance details

Defined in FFICXX.Runtime.Cast

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 # 
Instance details

Defined in FFICXX.Runtime.Cast

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 # 
Instance details

Defined in FFICXX.Runtime.Cast

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 # 
Instance details

Defined in FFICXX.Runtime.Cast

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 # 
Instance details

Defined in FFICXX.Runtime.Cast

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 # 
Instance details

Defined in FFICXX.Runtime.Cast

Methods

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

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

Castable (FunPtr t) (FunPtr t) Source # 
Instance details

Defined in FFICXX.Runtime.Function.Template

Methods

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

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

Castable (Function t) (Ptr (RawFunction t)) Source # 
Instance details

Defined in FFICXX.Runtime.Function.Template

Methods

cast :: Function t -> (Ptr (RawFunction t) -> IO r) -> IO r Source #

uncast :: Ptr (RawFunction t) -> (Function t -> 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 #

Instances
FPtr (Function t) Source # 
Instance details

Defined in FFICXX.Runtime.Function.Template

Associated Types

type Raw (Function t) :: * 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 #

class IsCType a Source #

Instances
IsCType CString Source # 
Instance details

Defined in FFICXX.Runtime.Cast

IsCType CChar Source # 
Instance details

Defined in FFICXX.Runtime.Cast

IsCType CInt Source # 
Instance details

Defined in FFICXX.Runtime.Cast

IsCType CUInt Source # 
Instance details

Defined in FFICXX.Runtime.Cast

IsCType CLong Source # 
Instance details

Defined in FFICXX.Runtime.Cast

IsCType CULong Source # 
Instance details

Defined in FFICXX.Runtime.Cast

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 #