Safe Haskell | None |
---|---|
Language | Haskell98 |
Basic types used in the bindings.
- newtype GType = GType {}
- type CGType = Word64
- gtypeName :: GType -> IO String
- gtypeString :: GType
- gtypePointer :: GType
- gtypeInt32 :: GType
- gtypeUInt32 :: GType
- gtypeInt64 :: GType
- gtypeUInt64 :: GType
- gtypeFloat :: GType
- gtypeDouble :: GType
- gtypeBoolean :: GType
- gtypeGType :: GType
- gtypeStrv :: GType
- gtypeBoxed :: GType
- gtypeObject :: GType
- type ForeignPtrNewtype a = Coercible a (ForeignPtr ())
- class ForeignPtrNewtype a => BoxedObject a where
- class BoxedEnum a where
- class ForeignPtrNewtype a => GObject a where
- data UnexpectedNullPointerReturn = UnexpectedNullPointerReturn {}
- newtype GVariant = GVariant (ForeignPtr GVariant)
- newtype GParamSpec = GParamSpec (ForeignPtr GParamSpec)
- data GArray a = GArray (Ptr (GArray a))
- data GPtrArray a = GPtrArray (Ptr (GPtrArray a))
- data GByteArray = GByteArray (Ptr GByteArray)
- data GHashTable a b = GHashTable (Ptr (GHashTable a b))
- data GList a = GList (Ptr (GList a))
- g_list_free :: Ptr (GList a) -> IO ()
- data GSList a = GSList (Ptr (GSList a))
- g_slist_free :: Ptr (GSList a) -> IO ()
- class Enum a => IsGFlag a
- newtype PtrWrapped a = PtrWrapped {}
- type GDestroyNotify a = FunPtr (Ptr a -> IO ())
GType related
A newtype for use on the haskell side.
A type identifier in the GLib type system. This is the low-level
type associated with the representation in memory, when using this
on the Haskell side use GType
below.
GType
of strings.
GType
of pointers.
GType
for signed integers.
GType
for unsigned integers.
GType
for signed 64 bit integers.
GType
for unsigned 64 bit integers.
GType
for floating point values.
GType
for gdouble.
GType
corresponding to gboolean.
GType
corresponding to a BoxedObject
.
Memory management
type ForeignPtrNewtype a = Coercible a (ForeignPtr ()) Source
A constraint ensuring that the given type is coercible to a ForeignPtr. It will hold for newtypes of the form
newtype Foo = Foo (ForeignPtr Foo)
which is the typical shape of wrapped GObject
s.
class ForeignPtrNewtype a => BoxedObject a where Source
Wrapped boxed structures, identified by their GType
.
class ForeignPtrNewtype a => GObject a where Source
A wrapped GObject
.
gobjectIsInitiallyUnowned :: a -> Bool Source
Whether the GObject
is a descendent of GInitiallyUnowned.
gobjectType :: a -> IO GType Source
The GType
for this object.
data UnexpectedNullPointerReturn Source
A common omission in the introspection data is missing (nullable) annotations for return types, when they clearly are nullable. (A common idiom is "Returns: valid value, or %NULL if something went wrong.")
Haskell wrappers will raise this exception if the return value is
an unexpected nullPtr
.
Basic GLib / GObject types
A GVariant. See Data.GI.Base.GVariant for further methods.
newtype GParamSpec Source
A GParamSpec. See Data.GI.Base.GParamSpec for further methods.
A GArray. Marshalling for this type is done in Data.GI.Base.BasicConversions, it is mapped to a list on the Haskell side.
A GPtrArray. Marshalling for this type is done in Data.GI.Base.BasicConversions, it is mapped to a list on the Haskell side.
data GByteArray Source
A GByteArray. Marshalling for this type is done in Data.GI.Base.BasicConversions, it is packed to a ByteString
on the Haskell side.
data GHashTable a b Source
A GHashTable. It is mapped to a Map
on the Haskell side.
GHashTable (Ptr (GHashTable a b)) |
A GList, mapped to a list on the Haskell side. Marshalling is done in Data.GI.Base.BasicConversions.
A GSList, mapped to a list on the Haskell side. Marshalling is done in Data.GI.Base.BasicConversions.
newtype PtrWrapped a Source
Some APIs, such as GHashTable
, pass around scalar types
wrapped into a pointer. We encode such a type as follows.
type GDestroyNotify a = FunPtr (Ptr a -> IO ()) Source
Destroy the memory associated with a given pointer.