Copyright | Will Thompson, Iñaki García Etxebarria and Jonas Platte |
---|---|
License | LGPL-2.1 |
Maintainer | Iñaki García Etxebarria (garetxe@gmail.com) |
Safe Haskell | None |
Language | Haskell2010 |
This structure is used to provide the type system with the information required to initialize and destruct (finalize) a type's class and its instances.
The initialized structure is passed to the typeRegisterStatic
function
(or is copied into the provided TypeInfo
structure in the
typePluginCompleteTypeInfo
). The type system will perform a deep
copy of this structure, so its memory does not need to be persistent
across invocation of typeRegisterStatic
.
- newtype TypeInfo = TypeInfo (ManagedPtr TypeInfo)
- newZeroTypeInfo :: MonadIO m => m TypeInfo
- noTypeInfo :: Maybe TypeInfo
- clearTypeInfoBaseFinalize :: MonadIO m => TypeInfo -> m ()
- getTypeInfoBaseFinalize :: MonadIO m => TypeInfo -> m (Maybe BaseFinalizeFunc)
- setTypeInfoBaseFinalize :: MonadIO m => TypeInfo -> FunPtr C_BaseFinalizeFunc -> m ()
- typeInfo_baseFinalize :: AttrLabelProxy "baseFinalize"
- clearTypeInfoBaseInit :: MonadIO m => TypeInfo -> m ()
- getTypeInfoBaseInit :: MonadIO m => TypeInfo -> m (Maybe BaseInitFunc)
- setTypeInfoBaseInit :: MonadIO m => TypeInfo -> FunPtr C_BaseInitFunc -> m ()
- typeInfo_baseInit :: AttrLabelProxy "baseInit"
- clearTypeInfoClassData :: MonadIO m => TypeInfo -> m ()
- getTypeInfoClassData :: MonadIO m => TypeInfo -> m (Ptr ())
- setTypeInfoClassData :: MonadIO m => TypeInfo -> Ptr () -> m ()
- typeInfo_classData :: AttrLabelProxy "classData"
- clearTypeInfoClassFinalize :: MonadIO m => TypeInfo -> m ()
- getTypeInfoClassFinalize :: MonadIO m => TypeInfo -> m (Maybe ClassFinalizeFunc)
- setTypeInfoClassFinalize :: MonadIO m => TypeInfo -> FunPtr C_ClassFinalizeFunc -> m ()
- typeInfo_classFinalize :: AttrLabelProxy "classFinalize"
- clearTypeInfoClassInit :: MonadIO m => TypeInfo -> m ()
- getTypeInfoClassInit :: MonadIO m => TypeInfo -> m (Maybe ClassInitFunc)
- setTypeInfoClassInit :: MonadIO m => TypeInfo -> FunPtr C_ClassInitFunc -> m ()
- typeInfo_classInit :: AttrLabelProxy "classInit"
- getTypeInfoClassSize :: MonadIO m => TypeInfo -> m Word16
- setTypeInfoClassSize :: MonadIO m => TypeInfo -> Word16 -> m ()
- typeInfo_classSize :: AttrLabelProxy "classSize"
- clearTypeInfoInstanceInit :: MonadIO m => TypeInfo -> m ()
- getTypeInfoInstanceInit :: MonadIO m => TypeInfo -> m (Maybe InstanceInitFunc)
- setTypeInfoInstanceInit :: MonadIO m => TypeInfo -> FunPtr C_InstanceInitFunc -> m ()
- typeInfo_instanceInit :: AttrLabelProxy "instanceInit"
- getTypeInfoInstanceSize :: MonadIO m => TypeInfo -> m Word16
- setTypeInfoInstanceSize :: MonadIO m => TypeInfo -> Word16 -> m ()
- typeInfo_instanceSize :: AttrLabelProxy "instanceSize"
- getTypeInfoNPreallocs :: MonadIO m => TypeInfo -> m Word16
- setTypeInfoNPreallocs :: MonadIO m => TypeInfo -> Word16 -> m ()
- typeInfo_nPreallocs :: AttrLabelProxy "nPreallocs"
- clearTypeInfoValueTable :: MonadIO m => TypeInfo -> m ()
- getTypeInfoValueTable :: MonadIO m => TypeInfo -> m (Maybe TypeValueTable)
- setTypeInfoValueTable :: MonadIO m => TypeInfo -> Ptr TypeValueTable -> m ()
- typeInfo_valueTable :: AttrLabelProxy "valueTable"
Exported types
WrappedPtr TypeInfo Source # | |
(~) AttrOpTag tag AttrSet => Constructible TypeInfo tag Source # | |
((~) * info (ResolveTypeInfoMethod t TypeInfo), MethodInfo * info TypeInfo p) => IsLabel t (TypeInfo -> p) Source # | |
((~) * info (ResolveTypeInfoMethod t TypeInfo), MethodInfo * info TypeInfo p) => IsLabelProxy t (TypeInfo -> p) Source # | |
HasAttributeList * TypeInfo Source # | |
type AttributeList TypeInfo Source # | |
Properties
baseFinalize
clearTypeInfoBaseFinalize :: MonadIO m => TypeInfo -> m () Source #
getTypeInfoBaseFinalize :: MonadIO m => TypeInfo -> m (Maybe BaseFinalizeFunc) Source #
setTypeInfoBaseFinalize :: MonadIO m => TypeInfo -> FunPtr C_BaseFinalizeFunc -> m () Source #
typeInfo_baseFinalize :: AttrLabelProxy "baseFinalize" Source #
baseInit
clearTypeInfoBaseInit :: MonadIO m => TypeInfo -> m () Source #
getTypeInfoBaseInit :: MonadIO m => TypeInfo -> m (Maybe BaseInitFunc) Source #
setTypeInfoBaseInit :: MonadIO m => TypeInfo -> FunPtr C_BaseInitFunc -> m () Source #
typeInfo_baseInit :: AttrLabelProxy "baseInit" Source #
classData
clearTypeInfoClassData :: MonadIO m => TypeInfo -> m () Source #
typeInfo_classData :: AttrLabelProxy "classData" Source #
classFinalize
clearTypeInfoClassFinalize :: MonadIO m => TypeInfo -> m () Source #
getTypeInfoClassFinalize :: MonadIO m => TypeInfo -> m (Maybe ClassFinalizeFunc) Source #
setTypeInfoClassFinalize :: MonadIO m => TypeInfo -> FunPtr C_ClassFinalizeFunc -> m () Source #
typeInfo_classFinalize :: AttrLabelProxy "classFinalize" Source #
classInit
clearTypeInfoClassInit :: MonadIO m => TypeInfo -> m () Source #
getTypeInfoClassInit :: MonadIO m => TypeInfo -> m (Maybe ClassInitFunc) Source #
setTypeInfoClassInit :: MonadIO m => TypeInfo -> FunPtr C_ClassInitFunc -> m () Source #
typeInfo_classInit :: AttrLabelProxy "classInit" Source #
classSize
typeInfo_classSize :: AttrLabelProxy "classSize" Source #
instanceInit
clearTypeInfoInstanceInit :: MonadIO m => TypeInfo -> m () Source #
getTypeInfoInstanceInit :: MonadIO m => TypeInfo -> m (Maybe InstanceInitFunc) Source #
setTypeInfoInstanceInit :: MonadIO m => TypeInfo -> FunPtr C_InstanceInitFunc -> m () Source #
typeInfo_instanceInit :: AttrLabelProxy "instanceInit" Source #
instanceSize
typeInfo_instanceSize :: AttrLabelProxy "instanceSize" Source #
nPreallocs
typeInfo_nPreallocs :: AttrLabelProxy "nPreallocs" Source #
valueTable
clearTypeInfoValueTable :: MonadIO m => TypeInfo -> m () Source #
getTypeInfoValueTable :: MonadIO m => TypeInfo -> m (Maybe TypeValueTable) Source #
setTypeInfoValueTable :: MonadIO m => TypeInfo -> Ptr TypeValueTable -> m () Source #
typeInfo_valueTable :: AttrLabelProxy "valueTable" Source #