Documentation
¶
Index ¶
- Constants
- type CDType
- type ConformanceDescriptor
- type Descriptor
- type GRKind
- type GenericRequirementFlags
- type PRKind
- type Protocol
- type ProtocolContextDescriptorFlags
- type ProtocolRequirementFlags
- func (f ProtocolRequirementFlags) ExtraDiscriminator() uint16
- func (f ProtocolRequirementFlags) IsAsync() bool
- func (f ProtocolRequirementFlags) IsFunctionImpl() bool
- func (f ProtocolRequirementFlags) IsInstance() bool
- func (f ProtocolRequirementFlags) IsSignedWithAddress() bool
- func (f ProtocolRequirementFlags) Kind() PRKind
- func (f ProtocolRequirementFlags) String() string
- type TargetGenericRequirementDescriptor
- type TargetProtocolRequirement
Constants ¶
View Source
const ( UnusedLowBits conformanceFlag = 0x07 // historical conformance kind TypeMetadataKindMask conformanceFlag = 0x7 << 3 // 8 type reference kinds TypeMetadataKindShift conformanceFlag = 3 IsRetroactiveMask conformanceFlag = 0x01 << 6 IsSynthesizedNonUniqueMask conformanceFlag = 0x01 << 7 NumConditionalRequirementsMask conformanceFlag = 0xFF << 8 NumConditionalRequirementsShift conformanceFlag = 8 HasResilientWitnessesMask conformanceFlag = 0x01 << 16 HasGenericWitnessTableMask conformanceFlag = 0x01 << 17 )
View Source
const ( // The conformance is for a nominal type referenced directly; // getTypeDescriptor() points to the type context descriptor. DirectTypeDescriptor referenceKind = 0x00 // The conformance is for a nominal type referenced indirectly; // getTypeDescriptor() points to the type context descriptor. IndirectTypeDescriptor referenceKind = 0x01 // The conformance is for an Objective-C class that should be looked up // by class name. DirectObjCClassName referenceKind = 0x02 // The conformance is for an Objective-C class that has no nominal type // descriptor. // getIndirectObjCClass() points to a variable that contains the pointer to // the class object, which then requires a runtime call to get metadata. // // On platforms without Objective-C interoperability, this case is // unused. IndirectObjCClass referenceKind = 0x03 )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CDType ¶ added in v1.1.100
type CDType struct { ProtocolDescriptorOffset int32 TypeRefOffset int32 WitnessTableOffset int32 Flags conformanceFlag }
ConformanceDescriptor in __TEXT.__swift5_proto This section contains an array of 32-bit signed integers. Each integer is a relative offset that points to a protocol conformance descriptor in the __TEXT.__const section.
type ConformanceDescriptor ¶
type Descriptor ¶
type Descriptor struct { Flags types.ContextDescriptorFlags // overide kind specific flags w/ ProtocolContextDescriptorFlags TODO: handle kind specific flags ParentOffset int32 NameOffset int32 // The name of the protocol. NumRequirementsInSignature uint32 // The number of generic requirements in the requirement signature of the protocol. NumRequirements uint32 /* The number of requirements in the protocol. If any requirements beyond MinimumWitnessTableSizeInWords are present * in the witness table template, they will be not be overwritten with defaults. */ AssociatedTypeNamesOffset int32 // Associated type names, as a space-separated list in the same order as the requirements. }
Descriptor in __TEXT.__swift5_protos This section contains an array of 32-bit signed integers. Each integer is a relative offset that points to a protocol descriptor in the __TEXT.__const section.
func (Descriptor) GetProtocolContextDescriptorFlags ¶ added in v1.1.100
func (d Descriptor) GetProtocolContextDescriptorFlags() ProtocolContextDescriptorFlags
func (Descriptor) String ¶ added in v1.1.100
func (d Descriptor) String() string
type GRKind ¶ added in v1.1.100
type GRKind uint8
const ( GRKindProtocol GRKind = 0 // A protocol requirement. GRKindSameType GRKind = 1 // A same-type requirement. GRKindBaseClass GRKind = 2 // A base class requirement. // A "same-conformance" requirement, implied by a same-type or base-class constraint that binds a parameter with protocol requirements. GRKindSameConformance GRKind = 3 GRKindLayout GRKind = 0x1F // A layout constraint. )
type GenericRequirementFlags ¶ added in v1.1.100
type GenericRequirementFlags uint32
func (GenericRequirementFlags) HasExtraArgument ¶ added in v1.1.100
func (f GenericRequirementFlags) HasExtraArgument() bool
func (GenericRequirementFlags) HasKeyArgument ¶ added in v1.1.100
func (f GenericRequirementFlags) HasKeyArgument() bool
func (GenericRequirementFlags) Kind ¶ added in v1.1.100
func (f GenericRequirementFlags) Kind() GRKind
func (GenericRequirementFlags) String ¶ added in v1.1.100
func (f GenericRequirementFlags) String() string
type Protocol ¶
type Protocol struct { Name string AssociatedType string Parent *Protocol Descriptor SignatureRequirements []TargetGenericRequirementDescriptor Requirements []TargetProtocolRequirement }
Protocol swift protocol object
type ProtocolContextDescriptorFlags ¶ added in v1.1.100
type ProtocolContextDescriptorFlags uint16
ProtocolContextDescriptorFlags flags for protocol context descriptors. These values are used as the kindSpecificFlags of the ContextDescriptorFlags for the protocol.
const ( /// Whether this protocol is class-constrained. HasClassConstraint ProtocolContextDescriptorFlags = 0 HasClassConstraint_width ProtocolContextDescriptorFlags = 1 /// Whether this protocol is resilient. IsResilient ProtocolContextDescriptorFlags = 1 /// Special protocol value. SpecialProtocolKind ProtocolContextDescriptorFlags = 2 SpecialProtocolKind_width ProtocolContextDescriptorFlags = 6 )
func (ProtocolContextDescriptorFlags) String ¶ added in v1.1.100
func (i ProtocolContextDescriptorFlags) String() string
type ProtocolRequirementFlags ¶ added in v1.1.100
type ProtocolRequirementFlags uint32
func (ProtocolRequirementFlags) ExtraDiscriminator ¶ added in v1.1.100
func (f ProtocolRequirementFlags) ExtraDiscriminator() uint16
func (ProtocolRequirementFlags) IsAsync ¶ added in v1.1.100
func (f ProtocolRequirementFlags) IsAsync() bool
func (ProtocolRequirementFlags) IsFunctionImpl ¶ added in v1.1.100
func (f ProtocolRequirementFlags) IsFunctionImpl() bool
func (ProtocolRequirementFlags) IsInstance ¶ added in v1.1.100
func (f ProtocolRequirementFlags) IsInstance() bool
func (ProtocolRequirementFlags) IsSignedWithAddress ¶ added in v1.1.100
func (f ProtocolRequirementFlags) IsSignedWithAddress() bool
func (ProtocolRequirementFlags) Kind ¶ added in v1.1.100
func (f ProtocolRequirementFlags) Kind() PRKind
func (ProtocolRequirementFlags) String ¶ added in v1.1.100
func (f ProtocolRequirementFlags) String() string
type TargetGenericRequirementDescriptor ¶
type TargetGenericRequirementDescriptor struct { Flags GenericRequirementFlags Param int32 // The type that's constrained, described as a mangled name. TypeOrProtocolOrConformanceOrLayout int32 // UNION: flags determine type }
type TargetProtocolRequirement ¶ added in v1.1.100
type TargetProtocolRequirement struct { Flags ProtocolRequirementFlags DefaultImplementation int32 }
Click to show internal directories.
Click to hide internal directories.