# Generated types for C types

## Structure types

Structure are generated by :func:objc.createStructType and represent a C structure, such as NSPoint or CGRect.

Structure types are all separate types, directly inheriting from :class:object, and behave like a mutable variant of :func:collections.namedtuple.

The rest of this section describes :class:StructureType, which defines the API of the structure types but does not exist as a real type.

A structure type.

## Opaque pointer types

Opaque pointer are created by :func:objc.createOpaquePointerType and represent opaque pointers or handles, such as values of type 'NSZone*'. Opaque pointers do not have further structure or behavior, they just exist as blobs of data that are returned from and passed to Objective-C functions or methods.

The rest of this section describes :class:OpaquePointerType, which defines the API of the opaque pointer types but does not exist as a real type.

An opaque pointer type. Values are usually created by the PyObjC bridge, but can be created manually using one of the keyword arguments:

Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.