Skip to content

EnumDescriptor

tevelee edited this page Jul 25, 2026 · 5 revisions

EnumDescriptor

An enum descriptor that describes some enum context.

public struct EnumDescriptor: TypeContextDescriptor, LayoutWrapper 

ABI Stability: Stable since the following

| macOS | iOS/tvOS | watchOS | Linux | Windows |
|-------|----------|---------|-------|---------|
| 10.14 | 12.2     | 5.2     | NA    | NA      |

Inheritance

TypeContextDescriptor, LayoutWrapper

Properties

ptr

Backing context descriptor pointer.

public let ptr: UnsafeRawPointer

numPayloadCases

The number of enum cases which have payloads (associated types). Ex. case number(Int)

public var numPayloadCases: Int 

payloadSizeOffset

The payload size offset is the number of words from the metadata pointer to the payload size, if any.

public var payloadSizeOffset: Int 

hasPayloadSizeOffset

Whether or not this enum has a payload size offset.

public var hasPayloadSizeOffset: Bool 

numEmptyCases

The number of enum cases that have no payload. Ex. case blue

public var numEmptyCases: Int 

numCases

The total number of cases this enum has.

public var numCases: Int 

foreignMetadataInitialization

The foreign metadata initialization info for this enum metadata, if it has any.

public var foreignMetadataInitialization: ForeignMetadataInitialization? 

singletonMetadataInitialization

The singleton metadata initialization info for this enum metadata, if it has any.

public var singletonMetadataInitialization: SingletonMetadataInitialization? 

canonicalMetadataPrespecializations

Canonical metadata specializations emitted for this generic type.

public var canonicalMetadataPrespecializations: [Metadata] 

canonicalMetadataPrespecializationCachingOnceToken

The runtime-owned once-token used to cache this generic type's canonical metadata prespecializations. This storage is exposed for inspection only and must not be mutated.

public var canonicalMetadataPrespecializationCachingOnceToken: UnsafeRawPointer? 

invertedProtocols

Capabilities this type's primary definition explicitly inverts.

public var invertedProtocols: InvertibleProtocolSet? 

singletonMetadata

The directly stored singleton metadata, when the compiler emitted one.

public var singletonMetadata: Metadata? 
Types
Protocols
Global Typealiases
Global Variables
Global Functions

Clone this wiki locally