Core handle: Opaque pointer (void*) extensively used by the Vulkan API. See the Object model section of the Vulkan documentation for more details.

Handle: Mutable type which wraps a core handle, allowing the use of finalizers to call API destructors with a reference counting mechanism to ensure no handle is destroyed before its children. Read more about them here.

Core structure: Structure defined in VulkanCore.jl with a 1:1 correspondence with C.

Intermediate structure: Minimal wrapper around a core structure which allows the interaction with pointer fields in a safe manner.

High-level structure: Structure meant to be interacted with like any other Julia structure, hiding C-specific details by providing e.g. arrays instead of a pointer and a count, strings instead of character pointers, version numbers instead of integers with a specific encoding.

Core function: Julia function defined in VulkanCore.jl which forwards a call to the Vulkan API function of the same name.

Intermediate function: Wrapper around a core function meant to automate certain C anv Vulkan patterns. May return handles and intermediate structures, wrapped in a ResultTypes.Result if the core function may fail.

High-level function: Almost identical to an intermediate function, except that all returned structures are high-level structures.