libffi-dynamic-0.0.0.2: LibFFI interface with dynamic bidirectional type-driven binding generation

Safe HaskellNone
LanguageHaskell98

Foreign.LibFFI.Dynamic.FFIType

Documentation

class FFIType a where Source #

Methods

ffiType :: Type a Source #

Instances
FFIType Bool Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

FFIType Double Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

FFIType Float Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

FFIType Int Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

Methods

ffiType :: Type Int Source #

FFIType Int8 Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

FFIType Int16 Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

FFIType Int32 Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

FFIType Int64 Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

FFIType Word Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

FFIType Word8 Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

FFIType Word16 Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

FFIType Word32 Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

FFIType Word64 Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

FFIType () Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

Methods

ffiType :: Type () Source #

FFIType CChar Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

FFIType CSChar Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

FFIType CUChar Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

FFIType CShort Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

FFIType CUShort Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

FFIType CInt Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

FFIType CUInt Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

FFIType CLong Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

FFIType CULong Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

FFIType CLLong Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

FFIType CULLong Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

FFIType CFloat Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

FFIType CDouble Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

FFIType CPtrdiff Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

FFIType CSize Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

FFIType CWchar Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

FFIType CSigAtomic Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

FFIType CClock Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

FFIType CTime Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

FFIType CUSeconds Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

FFIType CSUSeconds Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

FFIType CIntPtr Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

FFIType CUIntPtr Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

FFIType CIntMax Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

FFIType CUIntMax Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

FFIType (StablePtr a) Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

Methods

ffiType :: Type (StablePtr a) Source #

FFIType (Ptr a) Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

Methods

ffiType :: Type (Ptr a) Source #

FFIType (FunPtr a) Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

Methods

ffiType :: Type (FunPtr a) Source #

(FFIType a, FFIType b) => FFIType (a, b) Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

Methods

ffiType :: Type (a, b) Source #

(FFIType a, FFIType b, FFIType c) => FFIType (a, b, c) Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

Methods

ffiType :: Type (a, b, c) Source #

(FFIType a, FFIType b, FFIType c, FFIType d) => FFIType (a, b, c, d) Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

Methods

ffiType :: Type (a, b, c, d) Source #

(FFIType a, FFIType b, FFIType c, FFIType d, FFIType e) => FFIType (a, b, c, d, e) Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

Methods

ffiType :: Type (a, b, c, d, e) Source #

ffiTypeOf :: FFIType a => p a -> Type a Source #

newtype InArg a b Source #

Constructors

InArg 

Fields

Instances
Functor (InArg a) Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

Methods

fmap :: (a0 -> b) -> InArg a a0 -> InArg a b #

(<$) :: a0 -> InArg a b -> InArg a a0 #

castInArg :: InArg a c -> InArg b c Source #

withInArg :: InArg a b -> Ptr a -> (b -> IO t) -> IO t Source #

newtype OutArg a b Source #

Constructors

OutArg 

Fields

Instances
Contravariant (OutArg a) Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

Methods

contramap :: (a0 -> b) -> OutArg a b -> OutArg a a0 #

(>$) :: b -> OutArg a b -> OutArg a a0 #

composeInArgs :: InArg a (Ptr b) -> InArg b c -> InArg a c Source #

composeOutArgs :: OutArg b c -> OutArg a (Ptr b) -> OutArg a c Source #

class FFIType a => ArgType a where Source #

Minimal complete definition

Nothing

Methods

inArg :: InArg a a Source #

inArg :: Storable a => InArg a a Source #

outArg :: OutArg a a Source #

outArg :: Storable a => OutArg a a Source #

Instances
ArgType Bool Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

ArgType Double Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

ArgType Float Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

ArgType Int Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

ArgType Int8 Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

ArgType Int16 Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

ArgType Int32 Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

ArgType Int64 Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

ArgType Word Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

ArgType Word8 Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

ArgType Word16 Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

ArgType Word32 Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

ArgType Word64 Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

ArgType CChar Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

ArgType CSChar Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

ArgType CUChar Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

ArgType CShort Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

ArgType CUShort Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

ArgType CInt Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

ArgType CUInt Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

ArgType CLong Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

ArgType CULong Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

ArgType CLLong Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

ArgType CULLong Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

ArgType CFloat Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

ArgType CDouble Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

ArgType CPtrdiff Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

ArgType CSize Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

ArgType CWchar Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

ArgType CSigAtomic Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

ArgType CClock Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

ArgType CTime Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

ArgType CUSeconds Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

ArgType CSUSeconds Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

ArgType CIntPtr Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

ArgType CUIntPtr Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

ArgType CIntMax Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

ArgType CUIntMax Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

ArgType (StablePtr a) Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

ArgType (Ptr a) Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

Methods

inArg :: InArg (Ptr a) (Ptr a) Source #

outArg :: OutArg (Ptr a) (Ptr a) Source #

ArgType (FunPtr a) Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

data InRet a b Source #

Constructors

InRet 

Fields

Instances
Functor (InRet a) Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

Methods

fmap :: (a0 -> b) -> InRet a a0 -> InRet a b #

(<$) :: a0 -> InRet a b -> InRet a a0 #

castInRet :: InRet a c -> InRet b c Source #

withInRet :: InRet a b -> (Ptr a -> IO t) -> IO b Source #

newtype OutRet a b Source #

Constructors

OutRet 

Fields

Instances
Contravariant (OutRet a) Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

Methods

contramap :: (a0 -> b) -> OutRet a b -> OutRet a a0 #

(>$) :: b -> OutRet a b -> OutRet a a0 #

class FFIType a => RetType a where Source #

Minimal complete definition

Nothing

Methods

inRet :: InRet a a Source #

inRet :: Storable a => InRet a a Source #

outRet :: OutRet a a Source #

outRet :: Storable a => OutRet a a Source #

Instances
RetType Bool Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

RetType Double Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

RetType Float Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

RetType Int Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

RetType Int8 Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

RetType Int16 Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

RetType Int32 Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

RetType Int64 Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

RetType Word Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

RetType Word8 Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

RetType Word16 Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

RetType Word32 Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

RetType Word64 Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

RetType () Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

Methods

inRet :: InRet () () Source #

outRet :: OutRet () () Source #

RetType CChar Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

RetType CSChar Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

RetType CUChar Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

RetType CShort Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

RetType CUShort Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

RetType CInt Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

RetType CUInt Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

RetType CLong Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

RetType CULong Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

RetType CLLong Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

RetType CULLong Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

RetType CFloat Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

RetType CDouble Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

RetType CPtrdiff Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

RetType CSize Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

RetType CWchar Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

RetType CSigAtomic Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

RetType CClock Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

RetType CTime Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

RetType CUSeconds Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

RetType CSUSeconds Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

RetType CIntPtr Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

RetType CUIntPtr Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

RetType CIntMax Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

RetType CUIntMax Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

RetType (StablePtr a) Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

RetType (Ptr a) Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

Methods

inRet :: InRet (Ptr a) (Ptr a) Source #

outRet :: OutRet (Ptr a) (Ptr a) Source #

RetType (FunPtr a) Source # 
Instance details

Defined in Foreign.LibFFI.Dynamic.FFIType

outByRef :: OutArg a b -> OutArg (Ptr a) b Source #