types

package
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 25, 2022 License: MIT Imports: 6 Imported by: 0

Documentation

Overview

Code generated by mk_attributes.go, DO NOT EDIT.

Code generated by mk_composite_index.go, DO NOT EDIT.

Code generated by mk_from_row.go, DO NOT EDIT.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Assembly

type Assembly struct {
	HashAlgId AssemblyHashAlgorithm
	Version   uint64
	Flags     AssemblyFlags
	PublicKey Blob
	Name      string
	Culture   string
}

Assembly is a II.22.2 Assembly representation.

func (*Assembly) FromRow

func (f *Assembly) FromRow(r Row) error

FromRow creates Assembly from given Row.

type AssemblyFlags

type AssemblyFlags uint32

AssemblyFlags represents II.23.1.2 Values for AssemblyFlags.

func (AssemblyFlags) DisableJITcompileOptimizer

func (f AssemblyFlags) DisableJITcompileOptimizer() bool

DisableJITcompileOptimizer check DisableJITcompileOptimizer flag.

func (AssemblyFlags) EnableJITcompileTracking

func (f AssemblyFlags) EnableJITcompileTracking() bool

EnableJITcompileTracking check EnableJITcompileTracking flag.

func (AssemblyFlags) PublicKey

func (f AssemblyFlags) PublicKey() bool

PublicKey check PublicKey flag. Denotes: The assembly reference holds the full (unhashed)public key.

func (AssemblyFlags) Retargetable

func (f AssemblyFlags) Retargetable() bool

Retargetable check Retargetable flag. Denotes: The implementation of this assembly used at runtime isnot expected to match the version seen at compile time.

type AssemblyHashAlgorithm

type AssemblyHashAlgorithm uint32

AssemblyHashAlgorithm represents II.23.1.1 Values for AssemblyHashAlgorithm.

func (AssemblyHashAlgorithm) MD5

func (f AssemblyHashAlgorithm) MD5() bool

MD5 check MD5 flag.

func (AssemblyHashAlgorithm) None

func (f AssemblyHashAlgorithm) None() bool

None check None flag.

func (AssemblyHashAlgorithm) SHA1

func (f AssemblyHashAlgorithm) SHA1() bool

SHA1 check SHA1 flag.

type AssemblyOS

type AssemblyOS struct {
	OSPlatformID   uint32
	OSMajorVersion uint32
	OSMinorVersion uint32
}

AssemblyOS is a II.22.3 AssemblyOS representation.

func (*AssemblyOS) FromRow

func (f *AssemblyOS) FromRow(r Row) error

FromRow creates AssemblyOS from given Row.

type AssemblyProcessor

type AssemblyProcessor struct {
	Processor uint32
}

AssemblyProcessor is a II.22.4 AssemblyProcessor representation.

func (*AssemblyProcessor) FromRow

func (f *AssemblyProcessor) FromRow(r Row) error

FromRow creates AssemblyProcessor from given Row.

type AssemblyRef

type AssemblyRef struct {
	Version          uint64
	Flags            AssemblyFlags
	PublicKeyOrToken Blob
	Name             string
	Culture          string
	HashValue        Blob
}

AssemblyRef is a II.22.5 AssemblyRef representation.

func (*AssemblyRef) FromRow

func (f *AssemblyRef) FromRow(r Row) error

FromRow creates AssemblyRef from given Row.

type AssemblyRefOS

type AssemblyRefOS struct {
	OSPlatformID   uint32
	OSMajorVersion uint32
	OSMinorVersion uint32
	AssemblyRef    Index `table:"AssemblyRef"`
}

AssemblyRefOS is a II.22.6 AssemblyRefOS representation.

func (*AssemblyRefOS) FromRow

func (f *AssemblyRefOS) FromRow(r Row) error

FromRow creates AssemblyRefOS from given Row.

func (*AssemblyRefOS) ResolveAssemblyRef

func (f *AssemblyRefOS) ResolveAssemblyRef(c *Context) (AssemblyRef, error)

ResolveAssemblyRef resolves AssemblyRef index using given Context.

type AssemblyRefProcessor

type AssemblyRefProcessor struct {
	Processor   uint32
	AssemblyRef Index `table:"AssemblyRef"`
}

AssemblyRefProcessor is a II.22.7 AssemblyRefProcessor representation.

func (*AssemblyRefProcessor) FromRow

func (f *AssemblyRefProcessor) FromRow(r Row) error

FromRow creates AssemblyRefProcessor from given Row.

func (*AssemblyRefProcessor) ResolveAssemblyRef

func (f *AssemblyRefProcessor) ResolveAssemblyRef(c *Context) (AssemblyRef, error)

ResolveAssemblyRef resolves AssemblyRef index using given Context.

type Blob

type Blob = []byte

Blob represents #Blob heap index type.

type ClassLayout

type ClassLayout struct {
	PackingSize uint16
	ClassSize   uint32
	Parent      Index `table:"TypeDef"`
}

ClassLayout is a II.22.8 ClassLayout representation.

func (*ClassLayout) FromRow

func (f *ClassLayout) FromRow(r Row) error

FromRow creates ClassLayout from given Row.

func (*ClassLayout) ResolveParent

func (f *ClassLayout) ResolveParent(c *Context) (TypeDef, error)

ResolveParent resolves Parent index using given Context.

type Constant

type Constant struct {
	Type   ElementTypeKind
	Parent HasConstant
	Value  Blob
}

Constant is a II.22.9 Constant representation.

func (*Constant) FromRow

func (f *Constant) FromRow(r Row) error

FromRow creates Constant from given Row.

type Context

type Context struct {
	Metadata *md.Metadata

	md.TablesHeader
	// contains filtered or unexported fields
}

Context is a simple helper for accessing file heaps and tables.

func FromPE

func FromPE(f *pe.File) (*Context, error)

FromPE creates new Context from PE file.

func (*Context) Blob

func (t *Context) Blob(tt md.TableType, row, column uint32) (Blob, error)

Blob finds blob value from #Blob heap using given index column.

func (*Context) List

func (t *Context) List(tt md.TableType, row, column uint32, target md.TableType) (List, error)

List returns range of indexes using given index.

func (*Context) ResolveTypeDefOrRefName

func (t *Context) ResolveTypeDefOrRefName(ref TypeDefOrRef) (namespace, name string, err error)

ResolveTypeDefOrRefName resolves TypeDefOrRef name.

func (*Context) RowCount

func (t *Context) RowCount(tt md.TableType) uint32

RowCount returns row count of given table type.

func (*Context) Signature

func (t *Context) Signature(tt md.TableType, row, column uint32) (Signature, error)

Signature finds signature blob value from #Blob heap using given index column.

func (*Context) String

func (t *Context) String(tt md.TableType, row, column uint32) (string, error)

String finds string value from #Strings heap using given index column.

func (*Context) Table

func (t *Context) Table(tt md.TableType) Table

Table creates new Table associated with this Context.

func (*Context) Uint32

func (t *Context) Uint32(tt md.TableType, row, column uint32) (uint32, error)

Uint32 returns numeric value truncated to uint32.

func (*Context) Uint64

func (t *Context) Uint64(tt md.TableType, row, column uint32) (uint64, error)

Uint64 returns numeric value truncated to uint64.

type CustomAttribute

type CustomAttribute struct {
	Parent HasCustomAttribute
	Type   CustomAttributeType
	Value  Blob
}

CustomAttribute is a II.22.10 CustomAttribute representation.

func (*CustomAttribute) FromRow

func (f *CustomAttribute) FromRow(r Row) error

FromRow creates CustomAttribute from given Row.

type CustomAttributeType

type CustomAttributeType uint32

CustomAttributeType represents composite index one of

Not used
Not used
MethodDef
MemberRef
Not used

table.

func CreateCustomAttributeType

func CreateCustomAttributeType(tt md.TableType, idx uint32) CustomAttributeType

CreateCustomAttributeType creates new composite index from given tag and table index.

func (CustomAttributeType) Row

func (t CustomAttributeType) Row(c *Context) (Row, bool)

Row creates new Row using given Context and this index.

func (*CustomAttributeType) Set

func (t *CustomAttributeType) Set(tt md.TableType, idx uint32)

Set sets CustomAttributeType tag and index.

func (CustomAttributeType) String

func (t CustomAttributeType) String() string

String implements fmt.Stringer method.

func (CustomAttributeType) Table

func (t CustomAttributeType) Table() (md.TableType, bool)

Table returns associated TableType using tag.

func (CustomAttributeType) TableIndex

func (t CustomAttributeType) TableIndex() uint32

TableIndex returns CustomAttributeType index.

func (CustomAttributeType) Tag

func (t CustomAttributeType) Tag() uint32

Tag returns CustomAttributeType tag. Tag table:

Not used = 0
Not used = 1
MethodDef = 2
MemberRef = 3
Not used = 4

type DeclSecurity

type DeclSecurity struct {
	Action        uint16
	Parent        HasDeclSecurity
	PermissionSet Blob
}

DeclSecurity is a II.22.11 DeclSecurity representation.

func (*DeclSecurity) FromRow

func (f *DeclSecurity) FromRow(r Row) error

FromRow creates DeclSecurity from given Row.

type Element

type Element struct {
	Type     ElementType
	Pointers int
	ByRef    bool
	IsConst  bool
	IsArray  bool
}

Element represents one parameter or result in Signature.

type ElementType

type ElementType struct {
	Kind             ElementTypeKind
	GenericParam     Index `table:"GenericParam"`
	Array            ElementTypeArray
	SZArray          ElementTypeSZArray
	MethodDef        Index `table:"MethodDef"`
	Field            Index `table:"Field"`
	TypeDef          ElementTypeTypeDef
	GenericTypeVar   ElementTypeGenericTypeVar
	GenericMethodVar ElementTypeGenericMethodVar
}

ElementType is a II.23.1.16 Element types used in signatures representation kind.

Only one of GenericParam, Array, SZArray, MethodDef, Field, TypeDef, GenericTypeVar, GenericMethodVar fields should be present.

func (*ElementType) FromCode

func (e *ElementType) FromCode(code uint32) bool

FromCode tries to map code to ElementTypeKind.

type ElementTypeArray

type ElementTypeArray struct {
	Elem *Element
	Size uint32
}

ElementTypeArray is a ElementType union variant structure.

type ElementTypeGenericMethodVar

type ElementTypeGenericMethodVar struct {
	Index uint32
}

ElementTypeGenericMethodVar is a ElementType union variant structure.

type ElementTypeGenericTypeVar

type ElementTypeGenericTypeVar struct {
	Index uint32
}

ElementTypeGenericTypeVar is a ElementType union variant structure.

type ElementTypeKind

type ElementTypeKind uint16

ElementTypeKind is a II.23.1.16 Element types used in signatures representation kind.

const (
	// ELEMENT_TYPE_END constant.
	ELEMENT_TYPE_END ElementTypeKind = 0x00
	// ELEMENT_TYPE_VOID constant.
	ELEMENT_TYPE_VOID ElementTypeKind = 0x01
	// ELEMENT_TYPE_BOOLEAN constant.
	ELEMENT_TYPE_BOOLEAN ElementTypeKind = 0x02
	// ELEMENT_TYPE_CHAR constant.
	ELEMENT_TYPE_CHAR ElementTypeKind = 0x03
	// ELEMENT_TYPE_I1 constant.
	ELEMENT_TYPE_I1 ElementTypeKind = 0x04
	// ELEMENT_TYPE_U1 constant.
	ELEMENT_TYPE_U1 ElementTypeKind = 0x05
	// ELEMENT_TYPE_I2 constant.
	ELEMENT_TYPE_I2 ElementTypeKind = 0x06
	// ELEMENT_TYPE_U2 constant.
	ELEMENT_TYPE_U2 ElementTypeKind = 0x07
	// ELEMENT_TYPE_I4 constant.
	ELEMENT_TYPE_I4 ElementTypeKind = 0x08
	// ELEMENT_TYPE_U4 constant.
	ELEMENT_TYPE_U4 ElementTypeKind = 0x09
	// ELEMENT_TYPE_I8 constant.
	ELEMENT_TYPE_I8 ElementTypeKind = 0x0a
	// ELEMENT_TYPE_U8 constant.
	ELEMENT_TYPE_U8 ElementTypeKind = 0x0b
	// ELEMENT_TYPE_R4 constant.
	ELEMENT_TYPE_R4 ElementTypeKind = 0x0c
	// ELEMENT_TYPE_R8 constant.
	ELEMENT_TYPE_R8 ElementTypeKind = 0x0d
	// ELEMENT_TYPE_STRING constant.
	ELEMENT_TYPE_STRING ElementTypeKind = 0x0e
	// ELEMENT_TYPE_PTR constant.
	ELEMENT_TYPE_PTR ElementTypeKind = 0x0f
	// ELEMENT_TYPE_BYREF constant.
	ELEMENT_TYPE_BYREF ElementTypeKind = 0x10
	// ELEMENT_TYPE_VALUETYPE constant.
	ELEMENT_TYPE_VALUETYPE ElementTypeKind = 0x11
	// ELEMENT_TYPE_CLASS constant.
	ELEMENT_TYPE_CLASS ElementTypeKind = 0x12
	// ELEMENT_TYPE_VAR constant.
	ELEMENT_TYPE_VAR ElementTypeKind = 0x13
	// ELEMENT_TYPE_ARRAY constant.
	ELEMENT_TYPE_ARRAY ElementTypeKind = 0x14
	// ELEMENT_TYPE_GENERICINST constant.
	ELEMENT_TYPE_GENERICINST ElementTypeKind = 0x15
	// ELEMENT_TYPE_TYPEDBYREF constant.
	ELEMENT_TYPE_TYPEDBYREF ElementTypeKind = 0x16
	// ELEMENT_TYPE_I constant.
	ELEMENT_TYPE_I ElementTypeKind = 0x18
	// ELEMENT_TYPE_U constant.
	ELEMENT_TYPE_U ElementTypeKind = 0x19
	// ELEMENT_TYPE_FNPTR constant.
	ELEMENT_TYPE_FNPTR ElementTypeKind = 0x1b
	// ELEMENT_TYPE_OBJECT constant.
	ELEMENT_TYPE_OBJECT ElementTypeKind = 0x1c
	// ELEMENT_TYPE_SZARRAY constant.
	ELEMENT_TYPE_SZARRAY ElementTypeKind = 0x1d
	// ELEMENT_TYPE_MVAR constant.
	ELEMENT_TYPE_MVAR ElementTypeKind = 0x1e
	// ELEMENT_TYPE_CMOD_REQD constant.
	ELEMENT_TYPE_CMOD_REQD ElementTypeKind = 0x1f
	// ELEMENT_TYPE_CMOD_OPT constant.
	ELEMENT_TYPE_CMOD_OPT ElementTypeKind = 0x20
	// ELEMENT_TYPE_INTERNAL constant.
	ELEMENT_TYPE_INTERNAL ElementTypeKind = 0x21
	// ELEMENT_TYPE_MODIFIER constant.
	ELEMENT_TYPE_MODIFIER ElementTypeKind = 0x40
	// ELEMENT_TYPE_SENTINEL constant.
	ELEMENT_TYPE_SENTINEL ElementTypeKind = 0x41
	// ELEMENT_TYPE_PINNED constant.
	ELEMENT_TYPE_PINNED ElementTypeKind = 0x45
)

func (ElementTypeKind) String

func (i ElementTypeKind) String() string

type ElementTypeSZArray

type ElementTypeSZArray struct {
	Elem *Element
}

ElementTypeSZArray is a ElementType union variant structure.

type ElementTypeTypeDef

type ElementTypeTypeDef struct {
	Index    TypeDefOrRef
	Generics []ElementType
}

ElementTypeTypeDef is a ElementType union variant structure.

type Event

type Event struct {
	EventFlags EventAttributes
	Name       string
	EventType  TypeDefOrRef
}

Event is a II.22.13 Event representation.

func (*Event) FromRow

func (f *Event) FromRow(r Row) error

FromRow creates Event from given Row.

type EventAttributes

type EventAttributes uint16

EventAttributes represents II.23.1.4 Flags for events EventAttributes.

func (EventAttributes) RTSpecialName

func (f EventAttributes) RTSpecialName() bool

RTSpecialName check RTSpecialName flag. Denotes: CLI provides 'special' behavior, depending upon the name of the event.

func (EventAttributes) SpecialName

func (f EventAttributes) SpecialName() bool

SpecialName check SpecialName flag. Denotes: Event is special.

type EventMap

type EventMap struct {
	Parent    Index `table:"TypeDef"`
	EventList List  `table:"Event"`
}

EventMap is a II.22.12 EventMap representation.

func (*EventMap) FromRow

func (f *EventMap) FromRow(r Row) error

FromRow creates EventMap from given Row.

func (*EventMap) ResolveEventList

func (f *EventMap) ResolveEventList(c *Context) ([]Event, error)

ResolveEventList resolves EventList index using given Context.

func (*EventMap) ResolveParent

func (f *EventMap) ResolveParent(c *Context) (TypeDef, error)

ResolveParent resolves Parent index using given Context.

type ExportedType

type ExportedType struct {
	Flags          TypeAttributes
	TypeDefId      uint32
	TypeName       string
	TypeNamespace  string
	Implementation Implementation
}

ExportedType is a II.22.14 ExportedType representation.

func (*ExportedType) FromRow

func (f *ExportedType) FromRow(r Row) error

FromRow creates ExportedType from given Row.

type Field

type Field struct {
	Flags     FieldAttributes
	Name      string
	Signature Signature
}

Field is a II.22.15 Field representation.

func (*Field) FromRow

func (f *Field) FromRow(r Row) error

FromRow creates Field from given Row.

type FieldAttributes

type FieldAttributes uint16

FieldAttributes represents II.23.1.5 Flags for fields FieldAttributes.

func (FieldAttributes) Assembly

func (f FieldAttributes) Assembly() bool

Assembly check Assembly flag. Denotes: Accessibly by anyone in the Assembly.

func (FieldAttributes) CompilerControlled

func (f FieldAttributes) CompilerControlled() bool

CompilerControlled check CompilerControlled flag. Denotes: Member, not, referenceable.

func (FieldAttributes) FamANDAssem

func (f FieldAttributes) FamANDAssem() bool

FamANDAssem check FamANDAssem flag. Denotes: Accessible by sub-types only in this Assembly.

func (FieldAttributes) FamORAssem

func (f FieldAttributes) FamORAssem() bool

FamORAssem check FamORAssem flag. Denotes: Accessibly by sub-types anywhere, plus anyone in assembly.

func (FieldAttributes) Family

func (f FieldAttributes) Family() bool

Family check Family flag. Denotes: Accessible only by type and sub-types.

func (FieldAttributes) HasDefault

func (f FieldAttributes) HasDefault() bool

HasDefault check HasDefault flag. Denotes: Field has default.

func (FieldAttributes) HasFieldMarshal

func (f FieldAttributes) HasFieldMarshal() bool

HasFieldMarshal check HasFieldMarshal flag. Denotes: Field has marshalling information.

func (FieldAttributes) HasFieldRVA

func (f FieldAttributes) HasFieldRVA() bool

HasFieldRVA check HasFieldRVA flag. Denotes: Field has RVA.

func (FieldAttributes) InitOnly

func (f FieldAttributes) InitOnly() bool

InitOnly check InitOnly flag. Denotes: Field can only be initialized, not written to after init.

func (FieldAttributes) Literal

func (f FieldAttributes) Literal() bool

Literal check Literal flag. Denotes: Value is compile time constant.

func (FieldAttributes) NotSerialized

func (f FieldAttributes) NotSerialized() bool

NotSerialized check NotSerialized flag. Denotes: Reserved (to indicate this field should not be serialized when type is remoted).

func (FieldAttributes) PInvokeImpl

func (f FieldAttributes) PInvokeImpl() bool

PInvokeImpl check PInvokeImpl flag. Denotes: Implementation is forwarded through PInvoke.

func (FieldAttributes) Private

func (f FieldAttributes) Private() bool

Private check Private flag. Denotes: Accessible only by the parent type.

func (FieldAttributes) Public

func (f FieldAttributes) Public() bool

Public check Public flag. Denotes: Accessibly by anyone who has visibility to this scope field contract attributes.

func (FieldAttributes) RTSpecialName

func (f FieldAttributes) RTSpecialName() bool

RTSpecialName check RTSpecialName flag. Denotes: CLI provides 'special' behavior, depending upon the name of the field.

func (FieldAttributes) SpecialName

func (f FieldAttributes) SpecialName() bool

SpecialName check SpecialName flag. Denotes: Field is special.

func (FieldAttributes) Static

func (f FieldAttributes) Static() bool

Static check Static flag. Denotes: Defined on type, else per instance.

type FieldLayout

type FieldLayout struct {
	Offset uint32
	Field  Index `table:"Field"`
}

FieldLayout is a II.22.16 FieldLayout representation.

func (*FieldLayout) FromRow

func (f *FieldLayout) FromRow(r Row) error

FromRow creates FieldLayout from given Row.

func (*FieldLayout) ResolveField

func (f *FieldLayout) ResolveField(c *Context) (Field, error)

ResolveField resolves Field index using given Context.

type FieldMarshal

type FieldMarshal struct {
	Parent     Index // Should be HasFieldMarshal, but ECMA-335 6th-edition does not define it :(.
	NativeType Blob
}

FieldMarshal is a II.22.17 FieldMarshal representation.

func (*FieldMarshal) FromRow

func (f *FieldMarshal) FromRow(r Row) error

FromRow creates FieldMarshal from given Row.

type FieldRVA

type FieldRVA struct {
	RVA   uint32
	Field Index `table:"Field"`
}

FieldRVA is a II.22.18 FieldRVA representation.

func (*FieldRVA) FromRow

func (f *FieldRVA) FromRow(r Row) error

FromRow creates FieldRVA from given Row.

func (*FieldRVA) ResolveField

func (f *FieldRVA) ResolveField(c *Context) (Field, error)

ResolveField resolves Field index using given Context.

type FieldSignature

type FieldSignature struct {
	Field Element
}

FieldSignature is a II.23.2.4 FieldSig representation.

type File

type File struct {
	Flags     FileAttributes
	Name      string
	HashValue Blob
}

File is a II.22.19 File representation.

func (*File) FromRow

func (f *File) FromRow(r Row) error

FromRow creates File from given Row.

type FileAttributes

type FileAttributes uint32

FileAttributes represents II.23.1.6 Flags for files FileAttributes.

func (FileAttributes) ContainsMetaData

func (f FileAttributes) ContainsMetaData() bool

ContainsMetaData check ContainsMetaData flag. Denotes: This is not a resource file.

func (FileAttributes) ContainsNoMetaData

func (f FileAttributes) ContainsNoMetaData() bool

ContainsNoMetaData check ContainsNoMetaData flag. Denotes: This is a resource file or other non-metadata-containing file.

type GUID

type GUID = Index

GUID represents #GUID heap index type.

type GenericParam

type GenericParam struct {
	Number uint16
	Flags  GenericParamAttributes
	Owner  TypeOrMethodDef
	Name   string
}

GenericParam is a II.22.20 GenericParam representation.

func (*GenericParam) FromRow

func (f *GenericParam) FromRow(r Row) error

FromRow creates GenericParam from given Row.

type GenericParamAttributes

type GenericParamAttributes uint16

GenericParamAttributes represents II.23.1.7 Flags for Generic Parameters GenericParamAttributes.

func (GenericParamAttributes) Contravariant

func (f GenericParamAttributes) Contravariant() bool

Contravariant check Contravariant flag. Denotes: The generic parameter is contravariant.

func (GenericParamAttributes) Covariant

func (f GenericParamAttributes) Covariant() bool

Covariant check Covariant flag. Denotes: The generic parameter is covariant.

func (GenericParamAttributes) DefaultConstructorConstraint

func (f GenericParamAttributes) DefaultConstructorConstraint() bool

DefaultConstructorConstraint check DefaultConstructorConstraint flag. Denotes: The generic parameter has the .ctor special constraint.

func (GenericParamAttributes) None

func (f GenericParamAttributes) None() bool

None check None flag. Denotes: The generic parameter is non-variant and has no special constraints.

func (GenericParamAttributes) NotNullableValueTypeConstraint

func (f GenericParamAttributes) NotNullableValueTypeConstraint() bool

NotNullableValueTypeConstraint check NotNullableValueTypeConstraint flag. Denotes: The generic parameter has the valuetype special constraint.

func (GenericParamAttributes) ReferenceTypeConstraint

func (f GenericParamAttributes) ReferenceTypeConstraint() bool

ReferenceTypeConstraint check ReferenceTypeConstraint flag. Denotes: The generic parameter has the class special constraint.

type GenericParamConstraint

type GenericParamConstraint struct {
	Owner      Index `table:"GenericParam"`
	Constraint TypeDefOrRef
}

GenericParamConstraint is a II.22.21 GenericParamConstraint representation.

func (*GenericParamConstraint) FromRow

func (f *GenericParamConstraint) FromRow(r Row) error

FromRow creates GenericParamConstraint from given Row.

func (*GenericParamConstraint) ResolveOwner

func (f *GenericParamConstraint) ResolveOwner(c *Context) (GenericParam, error)

ResolveOwner resolves Owner index using given Context.

type HasConstant

type HasConstant uint32

HasConstant represents composite index one of

Field
Param
Property

table.

func CreateHasConstant

func CreateHasConstant(tt md.TableType, idx uint32) HasConstant

CreateHasConstant creates new composite index from given tag and table index.

func (HasConstant) Row

func (t HasConstant) Row(c *Context) (Row, bool)

Row creates new Row using given Context and this index.

func (*HasConstant) Set

func (t *HasConstant) Set(tt md.TableType, idx uint32)

Set sets HasConstant tag and index.

func (HasConstant) String

func (t HasConstant) String() string

String implements fmt.Stringer method.

func (HasConstant) Table

func (t HasConstant) Table() (md.TableType, bool)

Table returns associated TableType using tag.

func (HasConstant) TableIndex

func (t HasConstant) TableIndex() uint32

TableIndex returns HasConstant index.

func (HasConstant) Tag

func (t HasConstant) Tag() uint32

Tag returns HasConstant tag. Tag table:

Field = 0
Param = 1
Property = 2

type HasCustomAttribute

type HasCustomAttribute uint32

HasCustomAttribute represents composite index one of

MethodDef
Field
TypeRef
TypeDef
Param
InterfaceImpl
MemberRef
Module
Permission
Property
Event
StandAloneSig
ModuleRef
TypeSpec
Assembly
AssemblyRef
File
ExportedType
ManifestResource
GenericParam
GenericParamConstraint
MethodSpec

table.

func CreateHasCustomAttribute

func CreateHasCustomAttribute(tt md.TableType, idx uint32) HasCustomAttribute

CreateHasCustomAttribute creates new composite index from given tag and table index.

func (HasCustomAttribute) Row

func (t HasCustomAttribute) Row(c *Context) (Row, bool)

Row creates new Row using given Context and this index.

func (*HasCustomAttribute) Set

func (t *HasCustomAttribute) Set(tt md.TableType, idx uint32)

Set sets HasCustomAttribute tag and index.

func (HasCustomAttribute) String

func (t HasCustomAttribute) String() string

String implements fmt.Stringer method.

func (HasCustomAttribute) Table

func (t HasCustomAttribute) Table() (md.TableType, bool)

Table returns associated TableType using tag.

func (HasCustomAttribute) TableIndex

func (t HasCustomAttribute) TableIndex() uint32

TableIndex returns HasCustomAttribute index.

func (HasCustomAttribute) Tag

func (t HasCustomAttribute) Tag() uint32

Tag returns HasCustomAttribute tag. Tag table:

MethodDef = 0
Field = 1
TypeRef = 2
TypeDef = 3
Param = 4
InterfaceImpl = 5
MemberRef = 6
Module = 7
Permission = 8
Property = 9
Event = 10
StandAloneSig = 11
ModuleRef = 12
TypeSpec = 13
Assembly = 14
AssemblyRef = 15
File = 16
ExportedType = 17
ManifestResource = 18
GenericParam = 19
GenericParamConstraint = 20
MethodSpec = 21

type HasDeclSecurity

type HasDeclSecurity uint32

HasDeclSecurity represents composite index one of

TypeDef
MethodDef
Assembly

table.

func CreateHasDeclSecurity

func CreateHasDeclSecurity(tt md.TableType, idx uint32) HasDeclSecurity

CreateHasDeclSecurity creates new composite index from given tag and table index.

func (HasDeclSecurity) Row

func (t HasDeclSecurity) Row(c *Context) (Row, bool)

Row creates new Row using given Context and this index.

func (*HasDeclSecurity) Set

func (t *HasDeclSecurity) Set(tt md.TableType, idx uint32)

Set sets HasDeclSecurity tag and index.

func (HasDeclSecurity) String

func (t HasDeclSecurity) String() string

String implements fmt.Stringer method.

func (HasDeclSecurity) Table

func (t HasDeclSecurity) Table() (md.TableType, bool)

Table returns associated TableType using tag.

func (HasDeclSecurity) TableIndex

func (t HasDeclSecurity) TableIndex() uint32

TableIndex returns HasDeclSecurity index.

func (HasDeclSecurity) Tag

func (t HasDeclSecurity) Tag() uint32

Tag returns HasDeclSecurity tag. Tag table:

TypeDef = 0
MethodDef = 1
Assembly = 2

type HasFieldMarshall

type HasFieldMarshall uint32

HasFieldMarshall represents composite index one of

Field
Param

table.

func CreateHasFieldMarshall

func CreateHasFieldMarshall(tt md.TableType, idx uint32) HasFieldMarshall

CreateHasFieldMarshall creates new composite index from given tag and table index.

func (HasFieldMarshall) Row

func (t HasFieldMarshall) Row(c *Context) (Row, bool)

Row creates new Row using given Context and this index.

func (*HasFieldMarshall) Set

func (t *HasFieldMarshall) Set(tt md.TableType, idx uint32)

Set sets HasFieldMarshall tag and index.

func (HasFieldMarshall) String

func (t HasFieldMarshall) String() string

String implements fmt.Stringer method.

func (HasFieldMarshall) Table

func (t HasFieldMarshall) Table() (md.TableType, bool)

Table returns associated TableType using tag.

func (HasFieldMarshall) TableIndex

func (t HasFieldMarshall) TableIndex() uint32

TableIndex returns HasFieldMarshall index.

func (HasFieldMarshall) Tag

func (t HasFieldMarshall) Tag() uint32

Tag returns HasFieldMarshall tag. Tag table:

Field = 0
Param = 1

type HasSemantics

type HasSemantics uint32

HasSemantics represents composite index one of

Event
Property

table.

func CreateHasSemantics

func CreateHasSemantics(tt md.TableType, idx uint32) HasSemantics

CreateHasSemantics creates new composite index from given tag and table index.

func (HasSemantics) Row

func (t HasSemantics) Row(c *Context) (Row, bool)

Row creates new Row using given Context and this index.

func (*HasSemantics) Set

func (t *HasSemantics) Set(tt md.TableType, idx uint32)

Set sets HasSemantics tag and index.

func (HasSemantics) String

func (t HasSemantics) String() string

String implements fmt.Stringer method.

func (HasSemantics) Table

func (t HasSemantics) Table() (md.TableType, bool)

Table returns associated TableType using tag.

func (HasSemantics) TableIndex

func (t HasSemantics) TableIndex() uint32

TableIndex returns HasSemantics index.

func (HasSemantics) Tag

func (t HasSemantics) Tag() uint32

Tag returns HasSemantics tag. Tag table:

Event = 0
Property = 1

type ImplMap

type ImplMap struct {
	MappingFlags    PInvokeAttributes
	MemberForwarded MemberForwarded
	ImportName      string
	ImportScope     Index `table:"ModuleRef"`
}

ImplMap is a II.22.22 ImplMap representation.

func (*ImplMap) FromRow

func (f *ImplMap) FromRow(r Row) error

FromRow creates ImplMap from given Row.

func (*ImplMap) ResolveImportScope

func (f *ImplMap) ResolveImportScope(c *Context) (ModuleRef, error)

ResolveImportScope resolves ImportScope index using given Context.

type Implementation

type Implementation uint32

Implementation represents composite index one of

File
AssemblyRef
ExportedType

table.

func CreateImplementation

func CreateImplementation(tt md.TableType, idx uint32) Implementation

CreateImplementation creates new composite index from given tag and table index.

func (Implementation) Row

func (t Implementation) Row(c *Context) (Row, bool)

Row creates new Row using given Context and this index.

func (*Implementation) Set

func (t *Implementation) Set(tt md.TableType, idx uint32)

Set sets Implementation tag and index.

func (Implementation) String

func (t Implementation) String() string

String implements fmt.Stringer method.

func (Implementation) Table

func (t Implementation) Table() (md.TableType, bool)

Table returns associated TableType using tag.

func (Implementation) TableIndex

func (t Implementation) TableIndex() uint32

TableIndex returns Implementation index.

func (Implementation) Tag

func (t Implementation) Tag() uint32

Tag returns Implementation tag. Tag table:

File = 0
AssemblyRef = 1
ExportedType = 2

type Index

type Index = uint32

Index represents simple index field type.

type InterfaceImpl

type InterfaceImpl struct {
	Class     Index `table:"TypeDef"`
	Interface TypeDefOrRef
}

InterfaceImpl is a II.22.23 InterfaceImpl representation.

func (*InterfaceImpl) FromRow

func (f *InterfaceImpl) FromRow(r Row) error

FromRow creates InterfaceImpl from given Row.

func (*InterfaceImpl) ResolveClass

func (f *InterfaceImpl) ResolveClass(c *Context) (TypeDef, error)

ResolveClass resolves Class index using given Context.

type List

type List [2]Index

List represents list index field type.

func (List) Empty

func (l List) Empty() bool

Empty denotes List is empty.

func (List) End

func (l List) End() Index

End returns last Index in a List.

func (List) Size

func (l List) Size() int

Size returns List size.

func (List) Start

func (l List) Start() Index

Start returns first Index in a List.

type ManifestResource

type ManifestResource struct {
	Offset         uint32
	Flags          ManifestResourceAttributes
	Name           string
	Implementation Implementation
}

ManifestResource is a II.22.24 ManifestResource representation.

func (*ManifestResource) FromRow

func (f *ManifestResource) FromRow(r Row) error

FromRow creates ManifestResource from given Row.

type ManifestResourceAttributes

type ManifestResourceAttributes uint32

ManifestResourceAttributes represents II.23.1.9 Flags for ManifestResource ManifestResourceAttributes.

func (ManifestResourceAttributes) Private

func (f ManifestResourceAttributes) Private() bool

Private check Private flag. Denotes: The Resource is private to the Assembly.

func (ManifestResourceAttributes) Public

func (f ManifestResourceAttributes) Public() bool

Public check Public flag. Denotes: The Resource is exported from the Assembly.

type MemberForwarded

type MemberForwarded uint32

MemberForwarded represents composite index one of

Field
MethodDef

table.

func CreateMemberForwarded

func CreateMemberForwarded(tt md.TableType, idx uint32) MemberForwarded

CreateMemberForwarded creates new composite index from given tag and table index.

func (MemberForwarded) Row

func (t MemberForwarded) Row(c *Context) (Row, bool)

Row creates new Row using given Context and this index.

func (*MemberForwarded) Set

func (t *MemberForwarded) Set(tt md.TableType, idx uint32)

Set sets MemberForwarded tag and index.

func (MemberForwarded) String

func (t MemberForwarded) String() string

String implements fmt.Stringer method.

func (MemberForwarded) Table

func (t MemberForwarded) Table() (md.TableType, bool)

Table returns associated TableType using tag.

func (MemberForwarded) TableIndex

func (t MemberForwarded) TableIndex() uint32

TableIndex returns MemberForwarded index.

func (MemberForwarded) Tag

func (t MemberForwarded) Tag() uint32

Tag returns MemberForwarded tag. Tag table:

Field = 0
MethodDef = 1

type MemberRef

type MemberRef struct {
	Class     MemberRefParent
	Name      string
	Signature Signature
}

MemberRef is a II.22.25 MemberRef representation.

func (*MemberRef) FromRow

func (f *MemberRef) FromRow(r Row) error

FromRow creates MemberRef from given Row.

type MemberRefParent

type MemberRefParent uint32

MemberRefParent represents composite index one of

TypeDef
TypeRef
ModuleRef
MethodDef
TypeSpec

table.

func CreateMemberRefParent

func CreateMemberRefParent(tt md.TableType, idx uint32) MemberRefParent

CreateMemberRefParent creates new composite index from given tag and table index.

func (MemberRefParent) Row

func (t MemberRefParent) Row(c *Context) (Row, bool)

Row creates new Row using given Context and this index.

func (*MemberRefParent) Set

func (t *MemberRefParent) Set(tt md.TableType, idx uint32)

Set sets MemberRefParent tag and index.

func (MemberRefParent) String

func (t MemberRefParent) String() string

String implements fmt.Stringer method.

func (MemberRefParent) Table

func (t MemberRefParent) Table() (md.TableType, bool)

Table returns associated TableType using tag.

func (MemberRefParent) TableIndex

func (t MemberRefParent) TableIndex() uint32

TableIndex returns MemberRefParent index.

func (MemberRefParent) Tag

func (t MemberRefParent) Tag() uint32

Tag returns MemberRefParent tag. Tag table:

TypeDef = 0
TypeRef = 1
ModuleRef = 2
MethodDef = 3
TypeSpec = 4

type MethodAttributes

type MethodAttributes uint16

MethodAttributes represents II.23.1.10 Flags for methods MethodAttributes.

func (MethodAttributes) Abstract

func (f MethodAttributes) Abstract() bool

Abstract check Abstract flag. Denotes: Method does not provide an implementation.

func (MethodAttributes) Assembly

func (f MethodAttributes) Assembly() bool

Assembly check Assembly flag. Denotes: Accessibly by anyone in the Assembly.

func (MethodAttributes) CompilerControlled

func (f MethodAttributes) CompilerControlled() bool

CompilerControlled check CompilerControlled flag. Denotes: Member, not, referenceable.

func (MethodAttributes) FamANDAssem

func (f MethodAttributes) FamANDAssem() bool

FamANDAssem check FamANDAssem flag. Denotes: Accessible by sub-types only in this Assembly.

func (MethodAttributes) FamORAssem

func (f MethodAttributes) FamORAssem() bool

FamORAssem check FamORAssem flag. Denotes: Accessibly by sub-types anywhere, plus anyone in assembly.

func (MethodAttributes) Family

func (f MethodAttributes) Family() bool

Family check Family flag. Denotes: Accessible only by type and sub-types.

func (MethodAttributes) Final

func (f MethodAttributes) Final() bool

Final check Final flag. Denotes: Method cannot be overridden.

func (MethodAttributes) HasSecurity

func (f MethodAttributes) HasSecurity() bool

HasSecurity check HasSecurity flag. Denotes: Method has security associate with it.

func (MethodAttributes) HideBySig

func (f MethodAttributes) HideBySig() bool

HideBySig check HideBySig flag. Denotes: Method hides by name+sig, else just by name.

func (MethodAttributes) NewSlot

func (f MethodAttributes) NewSlot() bool

NewSlot check NewSlot flag. Denotes: Method always gets a new slot in the vtable.

func (MethodAttributes) PInvokeImpl

func (f MethodAttributes) PInvokeImpl() bool

PInvokeImpl check PInvokeImpl flag. Denotes: Implementation is forwarded through PInvoke.

func (MethodAttributes) Private

func (f MethodAttributes) Private() bool

Private check Private flag. Denotes: Accessible only by the parent type.

func (MethodAttributes) Public

func (f MethodAttributes) Public() bool

Public check Public flag. Denotes: Accessibly by anyone who has visibility to this scope field contract attributes.

func (MethodAttributes) RTSpecialName

func (f MethodAttributes) RTSpecialName() bool

RTSpecialName check RTSpecialName flag. Denotes: CLI provides 'special' behavior, depending upon the name of the method.

func (MethodAttributes) RequireSecObject

func (f MethodAttributes) RequireSecObject() bool

RequireSecObject check RequireSecObject flag. Denotes: Method calls another method containing security code.

func (MethodAttributes) ReuseSlot

func (f MethodAttributes) ReuseSlot() bool

ReuseSlot check ReuseSlot flag. Denotes: Method reuses existing slot in vtable.

func (MethodAttributes) SpecialName

func (f MethodAttributes) SpecialName() bool

SpecialName check SpecialName flag. Denotes: Method is special.

func (MethodAttributes) Static

func (f MethodAttributes) Static() bool

Static check Static flag. Denotes: Defined on type, else per instance.

func (MethodAttributes) Strict

func (f MethodAttributes) Strict() bool

Strict check Strict flag. Denotes: Method can only be overriden if also accessible.

func (MethodAttributes) UnmanagedExport

func (f MethodAttributes) UnmanagedExport() bool

UnmanagedExport check UnmanagedExport flag. Denotes: Reserved: shall be zero for conforming implementations.

func (MethodAttributes) Virtual

func (f MethodAttributes) Virtual() bool

Virtual check Virtual flag. Denotes: Method is virtual.

type MethodDef

type MethodDef struct {
	RVA       uint32
	ImplFlags MethodImplAttributes
	Flags     MethodAttributes
	Name      string
	Signature Signature
	ParamList List `table:"Param"`
}

MethodDef is a II.22.26 MethodDef representation.

func (*MethodDef) FromRow

func (f *MethodDef) FromRow(r Row) error

FromRow creates MethodDef from given Row.

func (*MethodDef) ResolveParamList

func (f *MethodDef) ResolveParamList(c *Context) ([]Param, error)

ResolveParamList resolves ParamList index using given Context.

type MethodDefOrRef

type MethodDefOrRef uint32

MethodDefOrRef represents composite index one of

MethodDef
MemberRef

table.

func CreateMethodDefOrRef

func CreateMethodDefOrRef(tt md.TableType, idx uint32) MethodDefOrRef

CreateMethodDefOrRef creates new composite index from given tag and table index.

func (MethodDefOrRef) Row

func (t MethodDefOrRef) Row(c *Context) (Row, bool)

Row creates new Row using given Context and this index.

func (*MethodDefOrRef) Set

func (t *MethodDefOrRef) Set(tt md.TableType, idx uint32)

Set sets MethodDefOrRef tag and index.

func (MethodDefOrRef) String

func (t MethodDefOrRef) String() string

String implements fmt.Stringer method.

func (MethodDefOrRef) Table

func (t MethodDefOrRef) Table() (md.TableType, bool)

Table returns associated TableType using tag.

func (MethodDefOrRef) TableIndex

func (t MethodDefOrRef) TableIndex() uint32

TableIndex returns MethodDefOrRef index.

func (MethodDefOrRef) Tag

func (t MethodDefOrRef) Tag() uint32

Tag returns MethodDefOrRef tag. Tag table:

MethodDef = 0
MemberRef = 1

type MethodImpl

type MethodImpl struct {
	Class             Index `table:"TypeDef"`
	MethodBody        MethodDefOrRef
	MethodDeclaration MethodDefOrRef
}

MethodImpl is a II.22.27 MethodImpl representation.

func (*MethodImpl) FromRow

func (f *MethodImpl) FromRow(r Row) error

FromRow creates MethodImpl from given Row.

func (*MethodImpl) ResolveClass

func (f *MethodImpl) ResolveClass(c *Context) (TypeDef, error)

ResolveClass resolves Class index using given Context.

type MethodImplAttributes

type MethodImplAttributes uint16

MethodImplAttributes represents II.23.1.11 Flags for methods MethodImplAttributes.

func (MethodImplAttributes) ForwardRef

func (f MethodImplAttributes) ForwardRef() bool

ForwardRef check ForwardRef flag. Denotes: Indicates method is defined; used primarily in merge scenarios.

func (MethodImplAttributes) IL

func (f MethodImplAttributes) IL() bool

IL check IL flag. Denotes: Method impl is CIL.

func (MethodImplAttributes) InternalCall

func (f MethodImplAttributes) InternalCall() bool

InternalCall check InternalCall flag. Denotes: Reserved: shall be zero in conforming implementations.

func (MethodImplAttributes) Managed

func (f MethodImplAttributes) Managed() bool

Managed check Managed flag. Denotes: Method impl is managed.

func (MethodImplAttributes) MaxMethodImplVal

func (f MethodImplAttributes) MaxMethodImplVal() bool

MaxMethodImplVal check MaxMethodImplVal flag. Denotes: Range check value.

func (MethodImplAttributes) Native

func (f MethodImplAttributes) Native() bool

Native check Native flag. Denotes: Method impl is native.

func (MethodImplAttributes) NoInlining

func (f MethodImplAttributes) NoInlining() bool

NoInlining check NoInlining flag. Denotes: Method cannot be inlined.

func (MethodImplAttributes) NoOptimization

func (f MethodImplAttributes) NoOptimization() bool

NoOptimization check NoOptimization flag. Denotes: Method will not be optimized when generating native code.

func (MethodImplAttributes) OPTIL

func (f MethodImplAttributes) OPTIL() bool

OPTIL check OPTIL flag. Denotes: Reserved: shall be zero in conforming implementations.

func (MethodImplAttributes) PreserveSig

func (f MethodImplAttributes) PreserveSig() bool

PreserveSig check PreserveSig flag. Denotes: Reserved: conforming implementations can ignore.

func (MethodImplAttributes) Runtime

func (f MethodImplAttributes) Runtime() bool

Runtime check Runtime flag. Denotes: Method impl is provided by the runtime.

func (MethodImplAttributes) Synchronized

func (f MethodImplAttributes) Synchronized() bool

Synchronized check Synchronized flag. Denotes: Method is single threaded through the body.

func (MethodImplAttributes) Unmanaged

func (f MethodImplAttributes) Unmanaged() bool

Unmanaged check Unmanaged flag. Denotes: Method impl is unmanaged, otherwise managed.

type MethodSemantics

type MethodSemantics struct {
	Semantics   MethodSemanticsAttributes
	Method      Index `table:"MethodDef"`
	Association HasSemantics
}

MethodSemantics is a II.22.28 MethodSemantics representation.

func (*MethodSemantics) FromRow

func (f *MethodSemantics) FromRow(r Row) error

FromRow creates MethodSemantics from given Row.

func (*MethodSemantics) ResolveMethod

func (f *MethodSemantics) ResolveMethod(c *Context) (MethodDef, error)

ResolveMethod resolves Method index using given Context.

type MethodSemanticsAttributes

type MethodSemanticsAttributes uint16

MethodSemanticsAttributes represents II.23.1.12 Flags for MethodSemantics MethodSemanticsAttributes.

func (MethodSemanticsAttributes) AddOn

func (f MethodSemanticsAttributes) AddOn() bool

AddOn check AddOn flag. Denotes: AddOn method for event. This refers to the required add_ method for events (§22.13).

func (MethodSemanticsAttributes) Fire

Fire check Fire flag. Denotes: Fire method for event. This refers to the optional raise_ method for events (§22.13).

func (MethodSemanticsAttributes) Getter

func (f MethodSemanticsAttributes) Getter() bool

Getter check Getter flag. Denotes: Getter for property.

func (MethodSemanticsAttributes) Other

func (f MethodSemanticsAttributes) Other() bool

Other check Other flag. Denotes: Other method for property or event.

func (MethodSemanticsAttributes) RemoveOn

func (f MethodSemanticsAttributes) RemoveOn() bool

RemoveOn check RemoveOn flag. Denotes: RemoveOn method for event. . This refers to the required remove_ method for events (§22.13).

func (MethodSemanticsAttributes) Setter

func (f MethodSemanticsAttributes) Setter() bool

Setter check Setter flag. Denotes: Setter for property.

type MethodSignature

type MethodSignature struct {
	Flags           uint32
	GenericArgCount uint32
	Return          Element
	Params          []Element
}

MethodSignature is a II.23.2.1 MethodDefSig or II.23.2.2 MethodRefSig representation.

type MethodSpec

type MethodSpec struct {
	Method        MethodDefOrRef
	Instantiation Blob
}

MethodSpec is a II.22.29 MethodSpec representation.

func (*MethodSpec) FromRow

func (f *MethodSpec) FromRow(r Row) error

FromRow creates MethodSpec from given Row.

type Module

type Module struct {
	Generation uint16
	Name       string
	Mvid       GUID
	EncId      GUID
	EncBaseId  GUID
}

Module is a II.22.30 Module representation.

func (*Module) FromRow

func (f *Module) FromRow(r Row) error

FromRow creates Module from given Row.

type ModuleRef

type ModuleRef struct {
	Name string
}

ModuleRef is a II.22.31 ModuleRef representation.

func (*ModuleRef) FromRow

func (f *ModuleRef) FromRow(r Row) error

FromRow creates ModuleRef from given Row.

type NestedClass

type NestedClass struct {
	NestedClass    Index `table:"TypeDef"`
	EnclosingClass Index `table:"TypeDef"`
}

NestedClass is a II.22.32 NestedClass representation.

func (*NestedClass) FromRow

func (f *NestedClass) FromRow(r Row) error

FromRow creates NestedClass from given Row.

func (*NestedClass) ResolveEnclosingClass

func (f *NestedClass) ResolveEnclosingClass(c *Context) (TypeDef, error)

ResolveEnclosingClass resolves EnclosingClass index using given Context.

func (*NestedClass) ResolveNestedClass

func (f *NestedClass) ResolveNestedClass(c *Context) (TypeDef, error)

ResolveNestedClass resolves NestedClass index using given Context.

type PInvokeAttributes

type PInvokeAttributes uint16

PInvokeAttributes represents II.23.1.8 Flags for ImplMap PInvokeAttributes.

func (PInvokeAttributes) CallConvCdecl

func (f PInvokeAttributes) CallConvCdecl() bool

CallConvCdecl check CallConvCdecl flag.

func (PInvokeAttributes) CallConvFastcall

func (f PInvokeAttributes) CallConvFastcall() bool

CallConvFastcall check CallConvFastcall flag.

func (PInvokeAttributes) CallConvPlatformapi

func (f PInvokeAttributes) CallConvPlatformapi() bool

CallConvPlatformapi check CallConvPlatformapi flag.

func (PInvokeAttributes) CallConvStdcall

func (f PInvokeAttributes) CallConvStdcall() bool

CallConvStdcall check CallConvStdcall flag.

func (PInvokeAttributes) CallConvThiscall

func (f PInvokeAttributes) CallConvThiscall() bool

CallConvThiscall check CallConvThiscall flag.

func (PInvokeAttributes) CharSetAnsi

func (f PInvokeAttributes) CharSetAnsi() bool

CharSetAnsi check CharSetAnsi flag.

func (PInvokeAttributes) CharSetAuto

func (f PInvokeAttributes) CharSetAuto() bool

CharSetAuto check CharSetAuto flag.

func (PInvokeAttributes) CharSetNotSpec

func (f PInvokeAttributes) CharSetNotSpec() bool

CharSetNotSpec check CharSetNotSpec flag.

func (PInvokeAttributes) CharSetUnicode

func (f PInvokeAttributes) CharSetUnicode() bool

CharSetUnicode check CharSetUnicode flag.

func (PInvokeAttributes) NoMangle

func (f PInvokeAttributes) NoMangle() bool

NoMangle check NoMangle flag. Denotes: PInvoke is to use the member name as specified.

func (PInvokeAttributes) SupportsLastError

func (f PInvokeAttributes) SupportsLastError() bool

SupportsLastError check SupportsLastError flag. Denotes: Information about target function. Not relevant for fields.

type Param

type Param struct {
	Flags    ParamAttributes
	Sequence uint16
	Name     string
}

Param is a II.22.33 Param representation.

func (*Param) FromRow

func (f *Param) FromRow(r Row) error

FromRow creates Param from given Row.

type ParamAttributes

type ParamAttributes uint16

ParamAttributes represents II.23.1.13 Flags for params ParamAttributes.

func (ParamAttributes) HasDefault

func (f ParamAttributes) HasDefault() bool

HasDefault check HasDefault flag. Denotes: Param has default value.

func (ParamAttributes) HasFieldMarshal

func (f ParamAttributes) HasFieldMarshal() bool

HasFieldMarshal check HasFieldMarshal flag. Denotes: Param has FieldMarshal.

func (ParamAttributes) In

func (f ParamAttributes) In() bool

In check In flag. Denotes: Param is [In].

func (ParamAttributes) Optional

func (f ParamAttributes) Optional() bool

Optional check Optional flag. Denotes: Param is optional.

func (ParamAttributes) Out

func (f ParamAttributes) Out() bool

Out check Out flag. Denotes: Param is [out].

func (ParamAttributes) Unused

func (f ParamAttributes) Unused() bool

Unused check Unused flag. Denotes: Reserved: shall be zero in a conforming implementation.

type Property

type Property struct {
	Flags PropertyAttributes
	Name  string
	Type  Signature
}

Property is a II.22.34 Property representation.

func (*Property) FromRow

func (f *Property) FromRow(r Row) error

FromRow creates Property from given Row.

type PropertyAttributes

type PropertyAttributes uint16

PropertyAttributes represents II.23.1.14 Flags for properties PropertyAttributes.

func (PropertyAttributes) HasDefault

func (f PropertyAttributes) HasDefault() bool

HasDefault check HasDefault flag. Denotes: Property has default.

func (PropertyAttributes) RTSpecialName

func (f PropertyAttributes) RTSpecialName() bool

RTSpecialName check RTSpecialName flag. Denotes: Runtime(metadata internal APIs) should check name encoding.

func (PropertyAttributes) SpecialName

func (f PropertyAttributes) SpecialName() bool

SpecialName check SpecialName flag. Denotes: Property is special.

func (PropertyAttributes) Unused

func (f PropertyAttributes) Unused() bool

Unused check Unused flag. Denotes: Reserved: shall be zero in a conforming implementation.

type PropertyMap

type PropertyMap struct {
	Parent       Index `table:"TypeDef"`
	PropertyList List  `table:"Property"`
}

PropertyMap is a II.22.35 PropertyMap representation.

func (*PropertyMap) FromRow

func (f *PropertyMap) FromRow(r Row) error

FromRow creates PropertyMap from given Row.

func (*PropertyMap) ResolveParent

func (f *PropertyMap) ResolveParent(c *Context) (TypeDef, error)

ResolveParent resolves Parent index using given Context.

func (*PropertyMap) ResolvePropertyList

func (f *PropertyMap) ResolvePropertyList(c *Context) ([]Property, error)

ResolvePropertyList resolves PropertyList index using given Context.

type ResolutionScope

type ResolutionScope uint32

ResolutionScope represents composite index one of

Module
ModuleRef
AssemblyRef
TypeRef

table.

func CreateResolutionScope

func CreateResolutionScope(tt md.TableType, idx uint32) ResolutionScope

CreateResolutionScope creates new composite index from given tag and table index.

func (ResolutionScope) Row

func (t ResolutionScope) Row(c *Context) (Row, bool)

Row creates new Row using given Context and this index.

func (*ResolutionScope) Set

func (t *ResolutionScope) Set(tt md.TableType, idx uint32)

Set sets ResolutionScope tag and index.

func (ResolutionScope) String

func (t ResolutionScope) String() string

String implements fmt.Stringer method.

func (ResolutionScope) Table

func (t ResolutionScope) Table() (md.TableType, bool)

Table returns associated TableType using tag.

func (ResolutionScope) TableIndex

func (t ResolutionScope) TableIndex() uint32

TableIndex returns ResolutionScope index.

func (ResolutionScope) Tag

func (t ResolutionScope) Tag() uint32

Tag returns ResolutionScope tag. Tag table:

Module = 0
ModuleRef = 1
AssemblyRef = 2
TypeRef = 3

type Row

type Row struct {
	Table Table
	Row   uint32
}

Row is a simple helper to access one table row.

func (*Row) Blob

func (t *Row) Blob(column uint32) (Blob, error)

Blob finds blob value from #Blob heap using given index column.

func (*Row) List

func (t *Row) List(column uint32, target md.TableType) (List, error)

List returns range of indexes using given index.

func (*Row) Signature

func (t *Row) Signature(column uint32) (Signature, error)

Signature finds signature blob value from #Blob heap using given index column.

func (*Row) String

func (t *Row) String(column uint32) (string, error)

String finds string value from #Strings heap using given index column.

func (*Row) Uint32

func (t *Row) Uint32(column uint32) (uint32, error)

Uint32 returns numeric value truncated to uint32.

func (*Row) Uint64

func (t *Row) Uint64(column uint32) (uint64, error)

Uint64 returns numeric value truncated to uint64.

type Signature

type Signature Blob

Signature represents Signature blob.

func (Signature) Reader

func (s Signature) Reader() *SignatureReader

Reader creates SignatureReader.

type SignatureReader

type SignatureReader struct {
	// contains filtered or unexported fields
}

SignatureReader is a helper to read Signature.

func (*SignatureReader) Field

func (s *SignatureReader) Field(file *Context) (FieldSignature, error)

Field reads FieldSignature from Signature blob.

func (*SignatureReader) Method

func (s *SignatureReader) Method(file *Context) (MethodSignature, error)

Method reads MethodSignature from Signature blob.

func (*SignatureReader) NextElement

func (s *SignatureReader) NextElement(c *Context) (e Element, _ error)

NextElement returns next Element in signature.

func (*SignatureReader) NextIs

func (s *SignatureReader) NextIs(expect uint32) bool

NextIs peeks unsigned integer from Signature blob and compares it with given value. If values are equal, increases offset.

func (*SignatureReader) Peek

func (s *SignatureReader) Peek() (value uint32, size int, ok bool)

Peek peeks unsigned integer from Signature blob, returns it and its size in bytes. If there is no data anymore, ok is false.

func (*SignatureReader) Read

func (s *SignatureReader) Read() (value uint32, ok bool)

Read reads unsigned integer from Signature blob and returns it. If there is no data anymore, ok is false.

type Table

type Table struct {
	Type md.TableType
	// contains filtered or unexported fields
}

Table is a simple helper to access one table.

func (Table) Columns

func (t Table) Columns() md.Columns

Columns returns columns of this table.

func (Table) Row

func (t Table) Row(row uint32) Row

Row creates new Row associated with this Table and underlying Context.

func (Table) RowCount

func (t Table) RowCount() uint32

RowCount returns row count of this table.

type TypeAttributes

type TypeAttributes uint32

TypeAttributes represents II.23.1.15 Flags for types TypeAttributes.

func (TypeAttributes) Abstract

func (f TypeAttributes) Abstract() bool

Abstract check Abstract flag. Denotes: Class is abstract.

func (TypeAttributes) AnsiClass

func (f TypeAttributes) AnsiClass() bool

AnsiClass check AnsiClass flag. Denotes: LPSTR is interpreted as ANSI.

func (TypeAttributes) AutoClass

func (f TypeAttributes) AutoClass() bool

AutoClass check AutoClass flag. Denotes: LPSTR is interpreted automatically.

func (TypeAttributes) AutoLayout

func (f TypeAttributes) AutoLayout() bool

AutoLayout check AutoLayout flag. Denotes: Class fields are auto-laid out.

func (TypeAttributes) BeforeFieldInit

func (f TypeAttributes) BeforeFieldInit() bool

BeforeFieldInit check BeforeFieldInit flag. Denotes: Initialize the class before first static field access.

func (TypeAttributes) Class

func (f TypeAttributes) Class() bool

Class check Class flag. Denotes: Type is a class.

func (TypeAttributes) CustomFormatClass

func (f TypeAttributes) CustomFormatClass() bool

CustomFormatClass check CustomFormatClass flag. Denotes: A non-standard encoding specified by CustomStringFormatMask.

func (TypeAttributes) ExplicitLayout

func (f TypeAttributes) ExplicitLayout() bool

ExplicitLayout check ExplicitLayout flag. Denotes: Layout is supplied explicitly.

func (TypeAttributes) HasSecurity

func (f TypeAttributes) HasSecurity() bool

HasSecurity check HasSecurity flag. Denotes: Type has security associate with it.

func (TypeAttributes) Import

func (f TypeAttributes) Import() bool

Import check Import flag. Denotes: Class/Interface is imported.

func (TypeAttributes) Interface

func (f TypeAttributes) Interface() bool

Interface check Interface flag. Denotes: Type is an interface.

func (TypeAttributes) IsTypeForwarder

func (f TypeAttributes) IsTypeForwarder() bool

IsTypeForwarder check IsTypeForwarder flag. Denotes: This ExportedType entry is a type forwarder.

func (TypeAttributes) NestedAssembly

func (f TypeAttributes) NestedAssembly() bool

NestedAssembly check NestedAssembly flag. Denotes: Class is nested with assembly visibility.

func (TypeAttributes) NestedFamANDAssem

func (f TypeAttributes) NestedFamANDAssem() bool

NestedFamANDAssem check NestedFamANDAssem flag. Denotes: Class is nested with family and assembly visibility.

func (TypeAttributes) NestedFamORAssem

func (f TypeAttributes) NestedFamORAssem() bool

NestedFamORAssem check NestedFamORAssem flag. Denotes: Class is nested with family or assembly visibility.

func (TypeAttributes) NestedFamily

func (f TypeAttributes) NestedFamily() bool

NestedFamily check NestedFamily flag. Denotes: Class is nested with family visibility.

func (TypeAttributes) NestedPrivate

func (f TypeAttributes) NestedPrivate() bool

NestedPrivate check NestedPrivate flag. Denotes: Class is nested with private visibility.

func (TypeAttributes) NestedPublic

func (f TypeAttributes) NestedPublic() bool

NestedPublic check NestedPublic flag. Denotes: Class is nested with public visibility.

func (TypeAttributes) NotPublic

func (f TypeAttributes) NotPublic() bool

NotPublic check NotPublic flag. Denotes: Class has no public scope.

func (TypeAttributes) Public

func (f TypeAttributes) Public() bool

Public check Public flag. Denotes: Class has public scope.

func (TypeAttributes) RTSpecialName

func (f TypeAttributes) RTSpecialName() bool

RTSpecialName check RTSpecialName flag. Denotes: CLI provides 'special' behavior, depending upon the name of the Type.

func (TypeAttributes) Sealed

func (f TypeAttributes) Sealed() bool

Sealed check Sealed flag. Denotes: Class cannot be extended.

func (TypeAttributes) SequentialLayout

func (f TypeAttributes) SequentialLayout() bool

SequentialLayout check SequentialLayout flag. Denotes: Class fields are laid out sequentially.

func (TypeAttributes) Serializable

func (f TypeAttributes) Serializable() bool

Serializable check Serializable flag. Denotes: Reserved (Class is serializable).

func (TypeAttributes) SpecialName

func (f TypeAttributes) SpecialName() bool

SpecialName check SpecialName flag. Denotes: Class name is special.

func (TypeAttributes) UnicodeClass

func (f TypeAttributes) UnicodeClass() bool

UnicodeClass check UnicodeClass flag. Denotes: LPSTR is interpreted as Unicode.

type TypeDef

type TypeDef struct {
	Flags         TypeAttributes
	TypeName      string
	TypeNamespace string
	Extends       TypeDefOrRef
	FieldList     List `table:"Field"`
	MethodList    List `table:"MethodDef"`
}

TypeDef is a II.22.37 TypeDef representation.

func (*TypeDef) FromRow

func (f *TypeDef) FromRow(r Row) error

FromRow creates TypeDef from given Row.

func (*TypeDef) ResolveFieldList

func (f *TypeDef) ResolveFieldList(c *Context) ([]Field, error)

ResolveFieldList resolves FieldList index using given Context.

func (*TypeDef) ResolveMethodList

func (f *TypeDef) ResolveMethodList(c *Context) ([]MethodDef, error)

ResolveMethodList resolves MethodList index using given Context.

type TypeDefOrRef

type TypeDefOrRef uint32

TypeDefOrRef represents composite index one of

TypeDef
TypeRef
TypeSpec

table.

func CreateTypeDefOrRef

func CreateTypeDefOrRef(tt md.TableType, idx uint32) TypeDefOrRef

CreateTypeDefOrRef creates new composite index from given tag and table index.

func (TypeDefOrRef) Row

func (t TypeDefOrRef) Row(c *Context) (Row, bool)

Row creates new Row using given Context and this index.

func (*TypeDefOrRef) Set

func (t *TypeDefOrRef) Set(tt md.TableType, idx uint32)

Set sets TypeDefOrRef tag and index.

func (TypeDefOrRef) String

func (t TypeDefOrRef) String() string

String implements fmt.Stringer method.

func (TypeDefOrRef) Table

func (t TypeDefOrRef) Table() (md.TableType, bool)

Table returns associated TableType using tag.

func (TypeDefOrRef) TableIndex

func (t TypeDefOrRef) TableIndex() uint32

TableIndex returns TypeDefOrRef index.

func (TypeDefOrRef) Tag

func (t TypeDefOrRef) Tag() uint32

Tag returns TypeDefOrRef tag. Tag table:

TypeDef = 0
TypeRef = 1
TypeSpec = 2

type TypeOrMethodDef

type TypeOrMethodDef uint32

TypeOrMethodDef represents composite index one of

TypeDef
MethodDef

table.

func CreateTypeOrMethodDef

func CreateTypeOrMethodDef(tt md.TableType, idx uint32) TypeOrMethodDef

CreateTypeOrMethodDef creates new composite index from given tag and table index.

func (TypeOrMethodDef) Row

func (t TypeOrMethodDef) Row(c *Context) (Row, bool)

Row creates new Row using given Context and this index.

func (*TypeOrMethodDef) Set

func (t *TypeOrMethodDef) Set(tt md.TableType, idx uint32)

Set sets TypeOrMethodDef tag and index.

func (TypeOrMethodDef) String

func (t TypeOrMethodDef) String() string

String implements fmt.Stringer method.

func (TypeOrMethodDef) Table

func (t TypeOrMethodDef) Table() (md.TableType, bool)

Table returns associated TableType using tag.

func (TypeOrMethodDef) TableIndex

func (t TypeOrMethodDef) TableIndex() uint32

TableIndex returns TypeOrMethodDef index.

func (TypeOrMethodDef) Tag

func (t TypeOrMethodDef) Tag() uint32

Tag returns TypeOrMethodDef tag. Tag table:

TypeDef = 0
MethodDef = 1

type TypeRef

type TypeRef struct {
	ResolutionScope ResolutionScope
	TypeName        string
	TypeNamespace   string
}

TypeRef is a II.22.38 TypeRef representation.

func (*TypeRef) FromRow

func (f *TypeRef) FromRow(r Row) error

FromRow creates TypeRef from given Row.

type TypeSpec

type TypeSpec struct {
	Signature Signature
}

TypeSpec is a II.22.39 TypeSpec representation.

func (*TypeSpec) FromRow

func (f *TypeSpec) FromRow(r Row) error

FromRow creates TypeSpec from given Row.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL