// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // NOTE: This is a generated file - do not manually edit! #pragma warning disable 649 #pragma warning disable 169 #pragma warning disable 282 // There is no defined ordering between fields in multiple declarations of partial class or struct #pragma warning disable CA1066 // IEquatable<T> implementations aren't used #pragma warning disable CA1822 #pragma warning disable IDE0059 #pragma warning disable SA1121 #pragma warning disable IDE0036, SA1129 using System; using System.Collections.Generic; using System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using Internal.NativeFormat; namespace Internal.Metadata.NativeFormat { #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct ArraySignature { private readonly MetadataReader _reader; private readonly ArraySignatureHandle _handle; internal ArraySignature(MetadataReader reader, ArraySignatureHandle handle) { _reader = reader; _handle = handle; uint offset = (uint)handle.Offset; NativeReader streamReader = reader._streamReader; offset = streamReader.Read(offset, out _elementType); offset = streamReader.Read(offset, out _rank); offset = streamReader.Read(offset, out _sizes); offset = streamReader.Read(offset, out _lowerBounds); } public ArraySignatureHandle Handle => _handle; /// One of: TypeDefinition, TypeReference, TypeSpecification, ModifiedType public Handle ElementType => _elementType; private readonly Handle _elementType; public int Rank => _rank; private readonly int _rank; public Int32Collection Sizes => _sizes; private readonly Int32Collection _sizes; public Int32Collection LowerBounds => _lowerBounds; private readonly Int32Collection _lowerBounds; } // ArraySignature #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct ArraySignatureHandle { internal readonly int _value; internal ArraySignatureHandle(Handle handle) : this(handle._value) { } internal ArraySignatureHandle(int value) { HandleType hType = (HandleType)((uint)value >> 25); Debug.Assert(hType == HandleType.ArraySignature || hType == HandleType.Null); _value = (value & 0x01FFFFFF) | (((int)HandleType.ArraySignature) << 25); _Validate(); } public override bool Equals(object obj) { if (obj is ArraySignatureHandle) return _value == ((ArraySignatureHandle)obj)._value; else if (obj is Handle) return _value == ((Handle)obj)._value; else return false; } // Equals public bool Equals(ArraySignatureHandle handle) => _value == handle._value; public bool Equals(Handle handle) => _value == handle._value; public override int GetHashCode() => (int)_value; public static implicit operator Handle(ArraySignatureHandle handle) => new Handle(handle._value); internal int Offset => (_value & 0x01FFFFFF); public ArraySignature GetArraySignature(MetadataReader reader) => new ArraySignature(reader, this); public bool IsNil => (_value & 0x01FFFFFF) == 0; [System.Diagnostics.Conditional("DEBUG")] internal void _Validate() { if ((HandleType)((uint)_value >> 25) != HandleType.ArraySignature) throw new ArgumentException(); } // _Validate #if DEBUG public override string ToString() => string.Format("{0:X8}", _value); #endif } // ArraySignatureHandle #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct ByReferenceSignature { private readonly MetadataReader _reader; private readonly ByReferenceSignatureHandle _handle; internal ByReferenceSignature(MetadataReader reader, ByReferenceSignatureHandle handle) { _reader = reader; _handle = handle; uint offset = (uint)handle.Offset; NativeReader streamReader = reader._streamReader; offset = streamReader.Read(offset, out _type); } public ByReferenceSignatureHandle Handle => _handle; /// One of: TypeDefinition, TypeReference, TypeSpecification, ModifiedType public Handle Type => _type; private readonly Handle _type; } // ByReferenceSignature #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct ByReferenceSignatureHandle { internal readonly int _value; internal ByReferenceSignatureHandle(Handle handle) : this(handle._value) { } internal ByReferenceSignatureHandle(int value) { HandleType hType = (HandleType)((uint)value >> 25); Debug.Assert(hType == HandleType.ByReferenceSignature || hType == HandleType.Null); _value = (value & 0x01FFFFFF) | (((int)HandleType.ByReferenceSignature) << 25); _Validate(); } public override bool Equals(object obj) { if (obj is ByReferenceSignatureHandle) return _value == ((ByReferenceSignatureHandle)obj)._value; else if (obj is Handle) return _value == ((Handle)obj)._value; else return false; } // Equals public bool Equals(ByReferenceSignatureHandle handle) => _value == handle._value; public bool Equals(Handle handle) => _value == handle._value; public override int GetHashCode() => (int)_value; public static implicit operator Handle(ByReferenceSignatureHandle handle) => new Handle(handle._value); internal int Offset => (_value & 0x01FFFFFF); public ByReferenceSignature GetByReferenceSignature(MetadataReader reader) => new ByReferenceSignature(reader, this); public bool IsNil => (_value & 0x01FFFFFF) == 0; [System.Diagnostics.Conditional("DEBUG")] internal void _Validate() { if ((HandleType)((uint)_value >> 25) != HandleType.ByReferenceSignature) throw new ArgumentException(); } // _Validate #if DEBUG public override string ToString() => string.Format("{0:X8}", _value); #endif } // ByReferenceSignatureHandle #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct ConstantBooleanArray { private readonly MetadataReader _reader; private readonly ConstantBooleanArrayHandle _handle; internal ConstantBooleanArray(MetadataReader reader, ConstantBooleanArrayHandle handle) { _reader = reader; _handle = handle; uint offset = (uint)handle.Offset; NativeReader streamReader = reader._streamReader; offset = streamReader.Read(offset, out _value); } public ConstantBooleanArrayHandle Handle => _handle; public BooleanCollection Value => _value; private readonly BooleanCollection _value; } // ConstantBooleanArray #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct ConstantBooleanArrayHandle { internal readonly int _value; internal ConstantBooleanArrayHandle(Handle handle) : this(handle._value) { } internal ConstantBooleanArrayHandle(int value) { HandleType hType = (HandleType)((uint)value >> 25); Debug.Assert(hType == HandleType.ConstantBooleanArray || hType == HandleType.Null); _value = (value & 0x01FFFFFF) | (((int)HandleType.ConstantBooleanArray) << 25); _Validate(); } public override bool Equals(object obj) { if (obj is ConstantBooleanArrayHandle) return _value == ((ConstantBooleanArrayHandle)obj)._value; else if (obj is Handle) return _value == ((Handle)obj)._value; else return false; } // Equals public bool Equals(ConstantBooleanArrayHandle handle) => _value == handle._value; public bool Equals(Handle handle) => _value == handle._value; public override int GetHashCode() => (int)_value; public static implicit operator Handle(ConstantBooleanArrayHandle handle) => new Handle(handle._value); internal int Offset => (_value & 0x01FFFFFF); public ConstantBooleanArray GetConstantBooleanArray(MetadataReader reader) => new ConstantBooleanArray(reader, this); public bool IsNil => (_value & 0x01FFFFFF) == 0; [System.Diagnostics.Conditional("DEBUG")] internal void _Validate() { if ((HandleType)((uint)_value >> 25) != HandleType.ConstantBooleanArray) throw new ArgumentException(); } // _Validate #if DEBUG public override string ToString() => string.Format("{0:X8}", _value); #endif } // ConstantBooleanArrayHandle #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct ConstantBooleanValue { private readonly MetadataReader _reader; private readonly ConstantBooleanValueHandle _handle; internal ConstantBooleanValue(MetadataReader reader, ConstantBooleanValueHandle handle) { _reader = reader; _handle = handle; uint offset = (uint)handle.Offset; NativeReader streamReader = reader._streamReader; offset = streamReader.Read(offset, out _value); } public ConstantBooleanValueHandle Handle => _handle; public bool Value => _value; private readonly bool _value; } // ConstantBooleanValue #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct ConstantBooleanValueHandle { internal readonly int _value; internal ConstantBooleanValueHandle(Handle handle) : this(handle._value) { } internal ConstantBooleanValueHandle(int value) { HandleType hType = (HandleType)((uint)value >> 25); Debug.Assert(hType == HandleType.ConstantBooleanValue || hType == HandleType.Null); _value = (value & 0x01FFFFFF) | (((int)HandleType.ConstantBooleanValue) << 25); _Validate(); } public override bool Equals(object obj) { if (obj is ConstantBooleanValueHandle) return _value == ((ConstantBooleanValueHandle)obj)._value; else if (obj is Handle) return _value == ((Handle)obj)._value; else return false; } // Equals public bool Equals(ConstantBooleanValueHandle handle) => _value == handle._value; public bool Equals(Handle handle) => _value == handle._value; public override int GetHashCode() => (int)_value; public static implicit operator Handle(ConstantBooleanValueHandle handle) => new Handle(handle._value); internal int Offset => (_value & 0x01FFFFFF); public ConstantBooleanValue GetConstantBooleanValue(MetadataReader reader) => new ConstantBooleanValue(reader, this); public bool IsNil => (_value & 0x01FFFFFF) == 0; [System.Diagnostics.Conditional("DEBUG")] internal void _Validate() { if ((HandleType)((uint)_value >> 25) != HandleType.ConstantBooleanValue) throw new ArgumentException(); } // _Validate #if DEBUG public override string ToString() => string.Format("{0:X8}", _value); #endif } // ConstantBooleanValueHandle #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct ConstantByteArray { private readonly MetadataReader _reader; private readonly ConstantByteArrayHandle _handle; internal ConstantByteArray(MetadataReader reader, ConstantByteArrayHandle handle) { _reader = reader; _handle = handle; uint offset = (uint)handle.Offset; NativeReader streamReader = reader._streamReader; offset = streamReader.Read(offset, out _value); } public ConstantByteArrayHandle Handle => _handle; public ByteCollection Value => _value; private readonly ByteCollection _value; } // ConstantByteArray #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct ConstantByteArrayHandle { internal readonly int _value; internal ConstantByteArrayHandle(Handle handle) : this(handle._value) { } internal ConstantByteArrayHandle(int value) { HandleType hType = (HandleType)((uint)value >> 25); Debug.Assert(hType == HandleType.ConstantByteArray || hType == HandleType.Null); _value = (value & 0x01FFFFFF) | (((int)HandleType.ConstantByteArray) << 25); _Validate(); } public override bool Equals(object obj) { if (obj is ConstantByteArrayHandle) return _value == ((ConstantByteArrayHandle)obj)._value; else if (obj is Handle) return _value == ((Handle)obj)._value; else return false; } // Equals public bool Equals(ConstantByteArrayHandle handle) => _value == handle._value; public bool Equals(Handle handle) => _value == handle._value; public override int GetHashCode() => (int)_value; public static implicit operator Handle(ConstantByteArrayHandle handle) => new Handle(handle._value); internal int Offset => (_value & 0x01FFFFFF); public ConstantByteArray GetConstantByteArray(MetadataReader reader) => new ConstantByteArray(reader, this); public bool IsNil => (_value & 0x01FFFFFF) == 0; [System.Diagnostics.Conditional("DEBUG")] internal void _Validate() { if ((HandleType)((uint)_value >> 25) != HandleType.ConstantByteArray) throw new ArgumentException(); } // _Validate #if DEBUG public override string ToString() => string.Format("{0:X8}", _value); #endif } // ConstantByteArrayHandle #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct ConstantByteValue { private readonly MetadataReader _reader; private readonly ConstantByteValueHandle _handle; internal ConstantByteValue(MetadataReader reader, ConstantByteValueHandle handle) { _reader = reader; _handle = handle; uint offset = (uint)handle.Offset; NativeReader streamReader = reader._streamReader; offset = streamReader.Read(offset, out _value); } public ConstantByteValueHandle Handle => _handle; public byte Value => _value; private readonly byte _value; } // ConstantByteValue #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct ConstantByteValueHandle { internal readonly int _value; internal ConstantByteValueHandle(Handle handle) : this(handle._value) { } internal ConstantByteValueHandle(int value) { HandleType hType = (HandleType)((uint)value >> 25); Debug.Assert(hType == HandleType.ConstantByteValue || hType == HandleType.Null); _value = (value & 0x01FFFFFF) | (((int)HandleType.ConstantByteValue) << 25); _Validate(); } public override bool Equals(object obj) { if (obj is ConstantByteValueHandle) return _value == ((ConstantByteValueHandle)obj)._value; else if (obj is Handle) return _value == ((Handle)obj)._value; else return false; } // Equals public bool Equals(ConstantByteValueHandle handle) => _value == handle._value; public bool Equals(Handle handle) => _value == handle._value; public override int GetHashCode() => (int)_value; public static implicit operator Handle(ConstantByteValueHandle handle) => new Handle(handle._value); internal int Offset => (_value & 0x01FFFFFF); public ConstantByteValue GetConstantByteValue(MetadataReader reader) => new ConstantByteValue(reader, this); public bool IsNil => (_value & 0x01FFFFFF) == 0; [System.Diagnostics.Conditional("DEBUG")] internal void _Validate() { if ((HandleType)((uint)_value >> 25) != HandleType.ConstantByteValue) throw new ArgumentException(); } // _Validate #if DEBUG public override string ToString() => string.Format("{0:X8}", _value); #endif } // ConstantByteValueHandle #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct ConstantCharArray { private readonly MetadataReader _reader; private readonly ConstantCharArrayHandle _handle; internal ConstantCharArray(MetadataReader reader, ConstantCharArrayHandle handle) { _reader = reader; _handle = handle; uint offset = (uint)handle.Offset; NativeReader streamReader = reader._streamReader; offset = streamReader.Read(offset, out _value); } public ConstantCharArrayHandle Handle => _handle; public CharCollection Value => _value; private readonly CharCollection _value; } // ConstantCharArray #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct ConstantCharArrayHandle { internal readonly int _value; internal ConstantCharArrayHandle(Handle handle) : this(handle._value) { } internal ConstantCharArrayHandle(int value) { HandleType hType = (HandleType)((uint)value >> 25); Debug.Assert(hType == HandleType.ConstantCharArray || hType == HandleType.Null); _value = (value & 0x01FFFFFF) | (((int)HandleType.ConstantCharArray) << 25); _Validate(); } public override bool Equals(object obj) { if (obj is ConstantCharArrayHandle) return _value == ((ConstantCharArrayHandle)obj)._value; else if (obj is Handle) return _value == ((Handle)obj)._value; else return false; } // Equals public bool Equals(ConstantCharArrayHandle handle) => _value == handle._value; public bool Equals(Handle handle) => _value == handle._value; public override int GetHashCode() => (int)_value; public static implicit operator Handle(ConstantCharArrayHandle handle) => new Handle(handle._value); internal int Offset => (_value & 0x01FFFFFF); public ConstantCharArray GetConstantCharArray(MetadataReader reader) => new ConstantCharArray(reader, this); public bool IsNil => (_value & 0x01FFFFFF) == 0; [System.Diagnostics.Conditional("DEBUG")] internal void _Validate() { if ((HandleType)((uint)_value >> 25) != HandleType.ConstantCharArray) throw new ArgumentException(); } // _Validate #if DEBUG public override string ToString() => string.Format("{0:X8}", _value); #endif } // ConstantCharArrayHandle #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct ConstantCharValue { private readonly MetadataReader _reader; private readonly ConstantCharValueHandle _handle; internal ConstantCharValue(MetadataReader reader, ConstantCharValueHandle handle) { _reader = reader; _handle = handle; uint offset = (uint)handle.Offset; NativeReader streamReader = reader._streamReader; offset = streamReader.Read(offset, out _value); } public ConstantCharValueHandle Handle => _handle; public char Value => _value; private readonly char _value; } // ConstantCharValue #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct ConstantCharValueHandle { internal readonly int _value; internal ConstantCharValueHandle(Handle handle) : this(handle._value) { } internal ConstantCharValueHandle(int value) { HandleType hType = (HandleType)((uint)value >> 25); Debug.Assert(hType == HandleType.ConstantCharValue || hType == HandleType.Null); _value = (value & 0x01FFFFFF) | (((int)HandleType.ConstantCharValue) << 25); _Validate(); } public override bool Equals(object obj) { if (obj is ConstantCharValueHandle) return _value == ((ConstantCharValueHandle)obj)._value; else if (obj is Handle) return _value == ((Handle)obj)._value; else return false; } // Equals public bool Equals(ConstantCharValueHandle handle) => _value == handle._value; public bool Equals(Handle handle) => _value == handle._value; public override int GetHashCode() => (int)_value; public static implicit operator Handle(ConstantCharValueHandle handle) => new Handle(handle._value); internal int Offset => (_value & 0x01FFFFFF); public ConstantCharValue GetConstantCharValue(MetadataReader reader) => new ConstantCharValue(reader, this); public bool IsNil => (_value & 0x01FFFFFF) == 0; [System.Diagnostics.Conditional("DEBUG")] internal void _Validate() { if ((HandleType)((uint)_value >> 25) != HandleType.ConstantCharValue) throw new ArgumentException(); } // _Validate #if DEBUG public override string ToString() => string.Format("{0:X8}", _value); #endif } // ConstantCharValueHandle #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct ConstantDoubleArray { private readonly MetadataReader _reader; private readonly ConstantDoubleArrayHandle _handle; internal ConstantDoubleArray(MetadataReader reader, ConstantDoubleArrayHandle handle) { _reader = reader; _handle = handle; uint offset = (uint)handle.Offset; NativeReader streamReader = reader._streamReader; offset = streamReader.Read(offset, out _value); } public ConstantDoubleArrayHandle Handle => _handle; public DoubleCollection Value => _value; private readonly DoubleCollection _value; } // ConstantDoubleArray #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct ConstantDoubleArrayHandle { internal readonly int _value; internal ConstantDoubleArrayHandle(Handle handle) : this(handle._value) { } internal ConstantDoubleArrayHandle(int value) { HandleType hType = (HandleType)((uint)value >> 25); Debug.Assert(hType == HandleType.ConstantDoubleArray || hType == HandleType.Null); _value = (value & 0x01FFFFFF) | (((int)HandleType.ConstantDoubleArray) << 25); _Validate(); } public override bool Equals(object obj) { if (obj is ConstantDoubleArrayHandle) return _value == ((ConstantDoubleArrayHandle)obj)._value; else if (obj is Handle) return _value == ((Handle)obj)._value; else return false; } // Equals public bool Equals(ConstantDoubleArrayHandle handle) => _value == handle._value; public bool Equals(Handle handle) => _value == handle._value; public override int GetHashCode() => (int)_value; public static implicit operator Handle(ConstantDoubleArrayHandle handle) => new Handle(handle._value); internal int Offset => (_value & 0x01FFFFFF); public ConstantDoubleArray GetConstantDoubleArray(MetadataReader reader) => new ConstantDoubleArray(reader, this); public bool IsNil => (_value & 0x01FFFFFF) == 0; [System.Diagnostics.Conditional("DEBUG")] internal void _Validate() { if ((HandleType)((uint)_value >> 25) != HandleType.ConstantDoubleArray) throw new ArgumentException(); } // _Validate #if DEBUG public override string ToString() => string.Format("{0:X8}", _value); #endif } // ConstantDoubleArrayHandle #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct ConstantDoubleValue { private readonly MetadataReader _reader; private readonly ConstantDoubleValueHandle _handle; internal ConstantDoubleValue(MetadataReader reader, ConstantDoubleValueHandle handle) { _reader = reader; _handle = handle; uint offset = (uint)handle.Offset; NativeReader streamReader = reader._streamReader; offset = streamReader.Read(offset, out _value); } public ConstantDoubleValueHandle Handle => _handle; public double Value => _value; private readonly double _value; } // ConstantDoubleValue #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct ConstantDoubleValueHandle { internal readonly int _value; internal ConstantDoubleValueHandle(Handle handle) : this(handle._value) { } internal ConstantDoubleValueHandle(int value) { HandleType hType = (HandleType)((uint)value >> 25); Debug.Assert(hType == HandleType.ConstantDoubleValue || hType == HandleType.Null); _value = (value & 0x01FFFFFF) | (((int)HandleType.ConstantDoubleValue) << 25); _Validate(); } public override bool Equals(object obj) { if (obj is ConstantDoubleValueHandle) return _value == ((ConstantDoubleValueHandle)obj)._value; else if (obj is Handle) return _value == ((Handle)obj)._value; else return false; } // Equals public bool Equals(ConstantDoubleValueHandle handle) => _value == handle._value; public bool Equals(Handle handle) => _value == handle._value; public override int GetHashCode() => (int)_value; public static implicit operator Handle(ConstantDoubleValueHandle handle) => new Handle(handle._value); internal int Offset => (_value & 0x01FFFFFF); public ConstantDoubleValue GetConstantDoubleValue(MetadataReader reader) => new ConstantDoubleValue(reader, this); public bool IsNil => (_value & 0x01FFFFFF) == 0; [System.Diagnostics.Conditional("DEBUG")] internal void _Validate() { if ((HandleType)((uint)_value >> 25) != HandleType.ConstantDoubleValue) throw new ArgumentException(); } // _Validate #if DEBUG public override string ToString() => string.Format("{0:X8}", _value); #endif } // ConstantDoubleValueHandle #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct ConstantEnumArray { private readonly MetadataReader _reader; private readonly ConstantEnumArrayHandle _handle; internal ConstantEnumArray(MetadataReader reader, ConstantEnumArrayHandle handle) { _reader = reader; _handle = handle; uint offset = (uint)handle.Offset; NativeReader streamReader = reader._streamReader; offset = streamReader.Read(offset, out _elementType); offset = streamReader.Read(offset, out _value); } public ConstantEnumArrayHandle Handle => _handle; public Handle ElementType => _elementType; private readonly Handle _elementType; public Handle Value => _value; private readonly Handle _value; } // ConstantEnumArray #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct ConstantEnumArrayHandle { internal readonly int _value; internal ConstantEnumArrayHandle(Handle handle) : this(handle._value) { } internal ConstantEnumArrayHandle(int value) { HandleType hType = (HandleType)((uint)value >> 25); Debug.Assert(hType == HandleType.ConstantEnumArray || hType == HandleType.Null); _value = (value & 0x01FFFFFF) | (((int)HandleType.ConstantEnumArray) << 25); _Validate(); } public override bool Equals(object obj) { if (obj is ConstantEnumArrayHandle) return _value == ((ConstantEnumArrayHandle)obj)._value; else if (obj is Handle) return _value == ((Handle)obj)._value; else return false; } // Equals public bool Equals(ConstantEnumArrayHandle handle) => _value == handle._value; public bool Equals(Handle handle) => _value == handle._value; public override int GetHashCode() => (int)_value; public static implicit operator Handle(ConstantEnumArrayHandle handle) => new Handle(handle._value); internal int Offset => (_value & 0x01FFFFFF); public ConstantEnumArray GetConstantEnumArray(MetadataReader reader) => new ConstantEnumArray(reader, this); public bool IsNil => (_value & 0x01FFFFFF) == 0; [System.Diagnostics.Conditional("DEBUG")] internal void _Validate() { if ((HandleType)((uint)_value >> 25) != HandleType.ConstantEnumArray) throw new ArgumentException(); } // _Validate #if DEBUG public override string ToString() => string.Format("{0:X8}", _value); #endif } // ConstantEnumArrayHandle #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct ConstantEnumValue { private readonly MetadataReader _reader; private readonly ConstantEnumValueHandle _handle; internal ConstantEnumValue(MetadataReader reader, ConstantEnumValueHandle handle) { _reader = reader; _handle = handle; uint offset = (uint)handle.Offset; NativeReader streamReader = reader._streamReader; offset = streamReader.Read(offset, out _value); offset = streamReader.Read(offset, out _type); } public ConstantEnumValueHandle Handle => _handle; public Handle Value => _value; private readonly Handle _value; public Handle Type => _type; private readonly Handle _type; } // ConstantEnumValue #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct ConstantEnumValueHandle { internal readonly int _value; internal ConstantEnumValueHandle(Handle handle) : this(handle._value) { } internal ConstantEnumValueHandle(int value) { HandleType hType = (HandleType)((uint)value >> 25); Debug.Assert(hType == HandleType.ConstantEnumValue || hType == HandleType.Null); _value = (value & 0x01FFFFFF) | (((int)HandleType.ConstantEnumValue) << 25); _Validate(); } public override bool Equals(object obj) { if (obj is ConstantEnumValueHandle) return _value == ((ConstantEnumValueHandle)obj)._value; else if (obj is Handle) return _value == ((Handle)obj)._value; else return false; } // Equals public bool Equals(ConstantEnumValueHandle handle) => _value == handle._value; public bool Equals(Handle handle) => _value == handle._value; public override int GetHashCode() => (int)_value; public static implicit operator Handle(ConstantEnumValueHandle handle) => new Handle(handle._value); internal int Offset => (_value & 0x01FFFFFF); public ConstantEnumValue GetConstantEnumValue(MetadataReader reader) => new ConstantEnumValue(reader, this); public bool IsNil => (_value & 0x01FFFFFF) == 0; [System.Diagnostics.Conditional("DEBUG")] internal void _Validate() { if ((HandleType)((uint)_value >> 25) != HandleType.ConstantEnumValue) throw new ArgumentException(); } // _Validate #if DEBUG public override string ToString() => string.Format("{0:X8}", _value); #endif } // ConstantEnumValueHandle #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct ConstantHandleArray { private readonly MetadataReader _reader; private readonly ConstantHandleArrayHandle _handle; internal ConstantHandleArray(MetadataReader reader, ConstantHandleArrayHandle handle) { _reader = reader; _handle = handle; uint offset = (uint)handle.Offset; NativeReader streamReader = reader._streamReader; offset = streamReader.Read(offset, out _value); } public ConstantHandleArrayHandle Handle => _handle; public HandleCollection Value => _value; private readonly HandleCollection _value; } // ConstantHandleArray #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct ConstantHandleArrayHandle { internal readonly int _value; internal ConstantHandleArrayHandle(Handle handle) : this(handle._value) { } internal ConstantHandleArrayHandle(int value) { HandleType hType = (HandleType)((uint)value >> 25); Debug.Assert(hType == HandleType.ConstantHandleArray || hType == HandleType.Null); _value = (value & 0x01FFFFFF) | (((int)HandleType.ConstantHandleArray) << 25); _Validate(); } public override bool Equals(object obj) { if (obj is ConstantHandleArrayHandle) return _value == ((ConstantHandleArrayHandle)obj)._value; else if (obj is Handle) return _value == ((Handle)obj)._value; else return false; } // Equals public bool Equals(ConstantHandleArrayHandle handle) => _value == handle._value; public bool Equals(Handle handle) => _value == handle._value; public override int GetHashCode() => (int)_value; public static implicit operator Handle(ConstantHandleArrayHandle handle) => new Handle(handle._value); internal int Offset => (_value & 0x01FFFFFF); public ConstantHandleArray GetConstantHandleArray(MetadataReader reader) => new ConstantHandleArray(reader, this); public bool IsNil => (_value & 0x01FFFFFF) == 0; [System.Diagnostics.Conditional("DEBUG")] internal void _Validate() { if ((HandleType)((uint)_value >> 25) != HandleType.ConstantHandleArray) throw new ArgumentException(); } // _Validate #if DEBUG public override string ToString() => string.Format("{0:X8}", _value); #endif } // ConstantHandleArrayHandle #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct ConstantInt16Array { private readonly MetadataReader _reader; private readonly ConstantInt16ArrayHandle _handle; internal ConstantInt16Array(MetadataReader reader, ConstantInt16ArrayHandle handle) { _reader = reader; _handle = handle; uint offset = (uint)handle.Offset; NativeReader streamReader = reader._streamReader; offset = streamReader.Read(offset, out _value); } public ConstantInt16ArrayHandle Handle => _handle; public Int16Collection Value => _value; private readonly Int16Collection _value; } // ConstantInt16Array #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct ConstantInt16ArrayHandle { internal readonly int _value; internal ConstantInt16ArrayHandle(Handle handle) : this(handle._value) { } internal ConstantInt16ArrayHandle(int value) { HandleType hType = (HandleType)((uint)value >> 25); Debug.Assert(hType == HandleType.ConstantInt16Array || hType == HandleType.Null); _value = (value & 0x01FFFFFF) | (((int)HandleType.ConstantInt16Array) << 25); _Validate(); } public override bool Equals(object obj) { if (obj is ConstantInt16ArrayHandle) return _value == ((ConstantInt16ArrayHandle)obj)._value; else if (obj is Handle) return _value == ((Handle)obj)._value; else return false; } // Equals public bool Equals(ConstantInt16ArrayHandle handle) => _value == handle._value; public bool Equals(Handle handle) => _value == handle._value; public override int GetHashCode() => (int)_value; public static implicit operator Handle(ConstantInt16ArrayHandle handle) => new Handle(handle._value); internal int Offset => (_value & 0x01FFFFFF); public ConstantInt16Array GetConstantInt16Array(MetadataReader reader) => new ConstantInt16Array(reader, this); public bool IsNil => (_value & 0x01FFFFFF) == 0; [System.Diagnostics.Conditional("DEBUG")] internal void _Validate() { if ((HandleType)((uint)_value >> 25) != HandleType.ConstantInt16Array) throw new ArgumentException(); } // _Validate #if DEBUG public override string ToString() => string.Format("{0:X8}", _value); #endif } // ConstantInt16ArrayHandle #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct ConstantInt16Value { private readonly MetadataReader _reader; private readonly ConstantInt16ValueHandle _handle; internal ConstantInt16Value(MetadataReader reader, ConstantInt16ValueHandle handle) { _reader = reader; _handle = handle; uint offset = (uint)handle.Offset; NativeReader streamReader = reader._streamReader; offset = streamReader.Read(offset, out _value); } public ConstantInt16ValueHandle Handle => _handle; public short Value => _value; private readonly short _value; } // ConstantInt16Value #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct ConstantInt16ValueHandle { internal readonly int _value; internal ConstantInt16ValueHandle(Handle handle) : this(handle._value) { } internal ConstantInt16ValueHandle(int value) { HandleType hType = (HandleType)((uint)value >> 25); Debug.Assert(hType == HandleType.ConstantInt16Value || hType == HandleType.Null); _value = (value & 0x01FFFFFF) | (((int)HandleType.ConstantInt16Value) << 25); _Validate(); } public override bool Equals(object obj) { if (obj is ConstantInt16ValueHandle) return _value == ((ConstantInt16ValueHandle)obj)._value; else if (obj is Handle) return _value == ((Handle)obj)._value; else return false; } // Equals public bool Equals(ConstantInt16ValueHandle handle) => _value == handle._value; public bool Equals(Handle handle) => _value == handle._value; public override int GetHashCode() => (int)_value; public static implicit operator Handle(ConstantInt16ValueHandle handle) => new Handle(handle._value); internal int Offset => (_value & 0x01FFFFFF); public ConstantInt16Value GetConstantInt16Value(MetadataReader reader) => new ConstantInt16Value(reader, this); public bool IsNil => (_value & 0x01FFFFFF) == 0; [System.Diagnostics.Conditional("DEBUG")] internal void _Validate() { if ((HandleType)((uint)_value >> 25) != HandleType.ConstantInt16Value) throw new ArgumentException(); } // _Validate #if DEBUG public override string ToString() => string.Format("{0:X8}", _value); #endif } // ConstantInt16ValueHandle #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct ConstantInt32Array { private readonly MetadataReader _reader; private readonly ConstantInt32ArrayHandle _handle; internal ConstantInt32Array(MetadataReader reader, ConstantInt32ArrayHandle handle) { _reader = reader; _handle = handle; uint offset = (uint)handle.Offset; NativeReader streamReader = reader._streamReader; offset = streamReader.Read(offset, out _value); } public ConstantInt32ArrayHandle Handle => _handle; public Int32Collection Value => _value; private readonly Int32Collection _value; } // ConstantInt32Array #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct ConstantInt32ArrayHandle { internal readonly int _value; internal ConstantInt32ArrayHandle(Handle handle) : this(handle._value) { } internal ConstantInt32ArrayHandle(int value) { HandleType hType = (HandleType)((uint)value >> 25); Debug.Assert(hType == HandleType.ConstantInt32Array || hType == HandleType.Null); _value = (value & 0x01FFFFFF) | (((int)HandleType.ConstantInt32Array) << 25); _Validate(); } public override bool Equals(object obj) { if (obj is ConstantInt32ArrayHandle) return _value == ((ConstantInt32ArrayHandle)obj)._value; else if (obj is Handle) return _value == ((Handle)obj)._value; else return false; } // Equals public bool Equals(ConstantInt32ArrayHandle handle) => _value == handle._value; public bool Equals(Handle handle) => _value == handle._value; public override int GetHashCode() => (int)_value; public static implicit operator Handle(ConstantInt32ArrayHandle handle) => new Handle(handle._value); internal int Offset => (_value & 0x01FFFFFF); public ConstantInt32Array GetConstantInt32Array(MetadataReader reader) => new ConstantInt32Array(reader, this); public bool IsNil => (_value & 0x01FFFFFF) == 0; [System.Diagnostics.Conditional("DEBUG")] internal void _Validate() { if ((HandleType)((uint)_value >> 25) != HandleType.ConstantInt32Array) throw new ArgumentException(); } // _Validate #if DEBUG public override string ToString() => string.Format("{0:X8}", _value); #endif } // ConstantInt32ArrayHandle #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct ConstantInt32Value { private readonly MetadataReader _reader; private readonly ConstantInt32ValueHandle _handle; internal ConstantInt32Value(MetadataReader reader, ConstantInt32ValueHandle handle) { _reader = reader; _handle = handle; uint offset = (uint)handle.Offset; NativeReader streamReader = reader._streamReader; offset = streamReader.Read(offset, out _value); } public ConstantInt32ValueHandle Handle => _handle; public int Value => _value; private readonly int _value; } // ConstantInt32Value #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct ConstantInt32ValueHandle { internal readonly int _value; internal ConstantInt32ValueHandle(Handle handle) : this(handle._value) { } internal ConstantInt32ValueHandle(int value) { HandleType hType = (HandleType)((uint)value >> 25); Debug.Assert(hType == HandleType.ConstantInt32Value || hType == HandleType.Null); _value = (value & 0x01FFFFFF) | (((int)HandleType.ConstantInt32Value) << 25); _Validate(); } public override bool Equals(object obj) { if (obj is ConstantInt32ValueHandle) return _value == ((ConstantInt32ValueHandle)obj)._value; else if (obj is Handle) return _value == ((Handle)obj)._value; else return false; } // Equals public bool Equals(ConstantInt32ValueHandle handle) => _value == handle._value; public bool Equals(Handle handle) => _value == handle._value; public override int GetHashCode() => (int)_value; public static implicit operator Handle(ConstantInt32ValueHandle handle) => new Handle(handle._value); internal int Offset => (_value & 0x01FFFFFF); public ConstantInt32Value GetConstantInt32Value(MetadataReader reader) => new ConstantInt32Value(reader, this); public bool IsNil => (_value & 0x01FFFFFF) == 0; [System.Diagnostics.Conditional("DEBUG")] internal void _Validate() { if ((HandleType)((uint)_value >> 25) != HandleType.ConstantInt32Value) throw new ArgumentException(); } // _Validate #if DEBUG public override string ToString() => string.Format("{0:X8}", _value); #endif } // ConstantInt32ValueHandle #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct ConstantInt64Array { private readonly MetadataReader _reader; private readonly ConstantInt64ArrayHandle _handle; internal ConstantInt64Array(MetadataReader reader, ConstantInt64ArrayHandle handle) { _reader = reader; _handle = handle; uint offset = (uint)handle.Offset; NativeReader streamReader = reader._streamReader; offset = streamReader.Read(offset, out _value); } public ConstantInt64ArrayHandle Handle => _handle; public Int64Collection Value => _value; private readonly Int64Collection _value; } // ConstantInt64Array #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct ConstantInt64ArrayHandle { internal readonly int _value; internal ConstantInt64ArrayHandle(Handle handle) : this(handle._value) { } internal ConstantInt64ArrayHandle(int value) { HandleType hType = (HandleType)((uint)value >> 25); Debug.Assert(hType == HandleType.ConstantInt64Array || hType == HandleType.Null); _value = (value & 0x01FFFFFF) | (((int)HandleType.ConstantInt64Array) << 25); _Validate(); } public override bool Equals(object obj) { if (obj is ConstantInt64ArrayHandle) return _value == ((ConstantInt64ArrayHandle)obj)._value; else if (obj is Handle) return _value == ((Handle)obj)._value; else return false; } // Equals public bool Equals(ConstantInt64ArrayHandle handle) => _value == handle._value; public bool Equals(Handle handle) => _value == handle._value; public override int GetHashCode() => (int)_value; public static implicit operator Handle(ConstantInt64ArrayHandle handle) => new Handle(handle._value); internal int Offset => (_value & 0x01FFFFFF); public ConstantInt64Array GetConstantInt64Array(MetadataReader reader) => new ConstantInt64Array(reader, this); public bool IsNil => (_value & 0x01FFFFFF) == 0; [System.Diagnostics.Conditional("DEBUG")] internal void _Validate() { if ((HandleType)((uint)_value >> 25) != HandleType.ConstantInt64Array) throw new ArgumentException(); } // _Validate #if DEBUG public override string ToString() => string.Format("{0:X8}", _value); #endif } // ConstantInt64ArrayHandle #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct ConstantInt64Value { private readonly MetadataReader _reader; private readonly ConstantInt64ValueHandle _handle; internal ConstantInt64Value(MetadataReader reader, ConstantInt64ValueHandle handle) { _reader = reader; _handle = handle; uint offset = (uint)handle.Offset; NativeReader streamReader = reader._streamReader; offset = streamReader.Read(offset, out _value); } public ConstantInt64ValueHandle Handle => _handle; public long Value => _value; private readonly long _value; } // ConstantInt64Value #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct ConstantInt64ValueHandle { internal readonly int _value; internal ConstantInt64ValueHandle(Handle handle) : this(handle._value) { } internal ConstantInt64ValueHandle(int value) { HandleType hType = (HandleType)((uint)value >> 25); Debug.Assert(hType == HandleType.ConstantInt64Value || hType == HandleType.Null); _value = (value & 0x01FFFFFF) | (((int)HandleType.ConstantInt64Value) << 25); _Validate(); } public override bool Equals(object obj) { if (obj is ConstantInt64ValueHandle) return _value == ((ConstantInt64ValueHandle)obj)._value; else if (obj is Handle) return _value == ((Handle)obj)._value; else return false; } // Equals public bool Equals(ConstantInt64ValueHandle handle) => _value == handle._value; public bool Equals(Handle handle) => _value == handle._value; public override int GetHashCode() => (int)_value; public static implicit operator Handle(ConstantInt64ValueHandle handle) => new Handle(handle._value); internal int Offset => (_value & 0x01FFFFFF); public ConstantInt64Value GetConstantInt64Value(MetadataReader reader) => new ConstantInt64Value(reader, this); public bool IsNil => (_value & 0x01FFFFFF) == 0; [System.Diagnostics.Conditional("DEBUG")] internal void _Validate() { if ((HandleType)((uint)_value >> 25) != HandleType.ConstantInt64Value) throw new ArgumentException(); } // _Validate #if DEBUG public override string ToString() => string.Format("{0:X8}", _value); #endif } // ConstantInt64ValueHandle #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct ConstantReferenceValue { private readonly MetadataReader _reader; private readonly ConstantReferenceValueHandle _handle; internal ConstantReferenceValue(MetadataReader reader, ConstantReferenceValueHandle handle) { _reader = reader; _handle = handle; uint offset = (uint)handle.Offset; NativeReader streamReader = reader._streamReader; } public ConstantReferenceValueHandle Handle => _handle; } // ConstantReferenceValue #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct ConstantReferenceValueHandle { internal readonly int _value; internal ConstantReferenceValueHandle(Handle handle) : this(handle._value) { } internal ConstantReferenceValueHandle(int value) { HandleType hType = (HandleType)((uint)value >> 25); Debug.Assert(hType == HandleType.ConstantReferenceValue || hType == HandleType.Null); _value = (value & 0x01FFFFFF) | (((int)HandleType.ConstantReferenceValue) << 25); _Validate(); } public override bool Equals(object obj) { if (obj is ConstantReferenceValueHandle) return _value == ((ConstantReferenceValueHandle)obj)._value; else if (obj is Handle) return _value == ((Handle)obj)._value; else return false; } // Equals public bool Equals(ConstantReferenceValueHandle handle) => _value == handle._value; public bool Equals(Handle handle) => _value == handle._value; public override int GetHashCode() => (int)_value; public static implicit operator Handle(ConstantReferenceValueHandle handle) => new Handle(handle._value); internal int Offset => (_value & 0x01FFFFFF); public ConstantReferenceValue GetConstantReferenceValue(MetadataReader reader) => new ConstantReferenceValue(reader, this); public bool IsNil => (_value & 0x01FFFFFF) == 0; [System.Diagnostics.Conditional("DEBUG")] internal void _Validate() { if ((HandleType)((uint)_value >> 25) != HandleType.ConstantReferenceValue) throw new ArgumentException(); } // _Validate #if DEBUG public override string ToString() => string.Format("{0:X8}", _value); #endif } // ConstantReferenceValueHandle #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct ConstantSByteArray { private readonly MetadataReader _reader; private readonly ConstantSByteArrayHandle _handle; internal ConstantSByteArray(MetadataReader reader, ConstantSByteArrayHandle handle) { _reader = reader; _handle = handle; uint offset = (uint)handle.Offset; NativeReader streamReader = reader._streamReader; offset = streamReader.Read(offset, out _value); } public ConstantSByteArrayHandle Handle => _handle; public SByteCollection Value => _value; private readonly SByteCollection _value; } // ConstantSByteArray #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct ConstantSByteArrayHandle { internal readonly int _value; internal ConstantSByteArrayHandle(Handle handle) : this(handle._value) { } internal ConstantSByteArrayHandle(int value) { HandleType hType = (HandleType)((uint)value >> 25); Debug.Assert(hType == HandleType.ConstantSByteArray || hType == HandleType.Null); _value = (value & 0x01FFFFFF) | (((int)HandleType.ConstantSByteArray) << 25); _Validate(); } public override bool Equals(object obj) { if (obj is ConstantSByteArrayHandle) return _value == ((ConstantSByteArrayHandle)obj)._value; else if (obj is Handle) return _value == ((Handle)obj)._value; else return false; } // Equals public bool Equals(ConstantSByteArrayHandle handle) => _value == handle._value; public bool Equals(Handle handle) => _value == handle._value; public override int GetHashCode() => (int)_value; public static implicit operator Handle(ConstantSByteArrayHandle handle) => new Handle(handle._value); internal int Offset => (_value & 0x01FFFFFF); public ConstantSByteArray GetConstantSByteArray(MetadataReader reader) => new ConstantSByteArray(reader, this); public bool IsNil => (_value & 0x01FFFFFF) == 0; [System.Diagnostics.Conditional("DEBUG")] internal void _Validate() { if ((HandleType)((uint)_value >> 25) != HandleType.ConstantSByteArray) throw new ArgumentException(); } // _Validate #if DEBUG public override string ToString() => string.Format("{0:X8}", _value); #endif } // ConstantSByteArrayHandle #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct ConstantSByteValue { private readonly MetadataReader _reader; private readonly ConstantSByteValueHandle _handle; internal ConstantSByteValue(MetadataReader reader, ConstantSByteValueHandle handle) { _reader = reader; _handle = handle; uint offset = (uint)handle.Offset; NativeReader streamReader = reader._streamReader; offset = streamReader.Read(offset, out _value); } public ConstantSByteValueHandle Handle => _handle; public sbyte Value => _value; private readonly sbyte _value; } // ConstantSByteValue #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct ConstantSByteValueHandle { internal readonly int _value; internal ConstantSByteValueHandle(Handle handle) : this(handle._value) { } internal ConstantSByteValueHandle(int value) { HandleType hType = (HandleType)((uint)value >> 25); Debug.Assert(hType == HandleType.ConstantSByteValue || hType == HandleType.Null); _value = (value & 0x01FFFFFF) | (((int)HandleType.ConstantSByteValue) << 25); _Validate(); } public override bool Equals(object obj) { if (obj is ConstantSByteValueHandle) return _value == ((ConstantSByteValueHandle)obj)._value; else if (obj is Handle) return _value == ((Handle)obj)._value; else return false; } // Equals public bool Equals(ConstantSByteValueHandle handle) => _value == handle._value; public bool Equals(Handle handle) => _value == handle._value; public override int GetHashCode() => (int)_value; public static implicit operator Handle(ConstantSByteValueHandle handle) => new Handle(handle._value); internal int Offset => (_value & 0x01FFFFFF); public ConstantSByteValue GetConstantSByteValue(MetadataReader reader) => new ConstantSByteValue(reader, this); public bool IsNil => (_value & 0x01FFFFFF) == 0; [System.Diagnostics.Conditional("DEBUG")] internal void _Validate() { if ((HandleType)((uint)_value >> 25) != HandleType.ConstantSByteValue) throw new ArgumentException(); } // _Validate #if DEBUG public override string ToString() => string.Format("{0:X8}", _value); #endif } // ConstantSByteValueHandle #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct ConstantSingleArray { private readonly MetadataReader _reader; private readonly ConstantSingleArrayHandle _handle; internal ConstantSingleArray(MetadataReader reader, ConstantSingleArrayHandle handle) { _reader = reader; _handle = handle; uint offset = (uint)handle.Offset; NativeReader streamReader = reader._streamReader; offset = streamReader.Read(offset, out _value); } public ConstantSingleArrayHandle Handle => _handle; public SingleCollection Value => _value; private readonly SingleCollection _value; } // ConstantSingleArray #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct ConstantSingleArrayHandle { internal readonly int _value; internal ConstantSingleArrayHandle(Handle handle) : this(handle._value) { } internal ConstantSingleArrayHandle(int value) { HandleType hType = (HandleType)((uint)value >> 25); Debug.Assert(hType == HandleType.ConstantSingleArray || hType == HandleType.Null); _value = (value & 0x01FFFFFF) | (((int)HandleType.ConstantSingleArray) << 25); _Validate(); } public override bool Equals(object obj) { if (obj is ConstantSingleArrayHandle) return _value == ((ConstantSingleArrayHandle)obj)._value; else if (obj is Handle) return _value == ((Handle)obj)._value; else return false; } // Equals public bool Equals(ConstantSingleArrayHandle handle) => _value == handle._value; public bool Equals(Handle handle) => _value == handle._value; public override int GetHashCode() => (int)_value; public static implicit operator Handle(ConstantSingleArrayHandle handle) => new Handle(handle._value); internal int Offset => (_value & 0x01FFFFFF); public ConstantSingleArray GetConstantSingleArray(MetadataReader reader) => new ConstantSingleArray(reader, this); public bool IsNil => (_value & 0x01FFFFFF) == 0; [System.Diagnostics.Conditional("DEBUG")] internal void _Validate() { if ((HandleType)((uint)_value >> 25) != HandleType.ConstantSingleArray) throw new ArgumentException(); } // _Validate #if DEBUG public override string ToString() => string.Format("{0:X8}", _value); #endif } // ConstantSingleArrayHandle #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct ConstantSingleValue { private readonly MetadataReader _reader; private readonly ConstantSingleValueHandle _handle; internal ConstantSingleValue(MetadataReader reader, ConstantSingleValueHandle handle) { _reader = reader; _handle = handle; uint offset = (uint)handle.Offset; NativeReader streamReader = reader._streamReader; offset = streamReader.Read(offset, out _value); } public ConstantSingleValueHandle Handle => _handle; public float Value => _value; private readonly float _value; } // ConstantSingleValue #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct ConstantSingleValueHandle { internal readonly int _value; internal ConstantSingleValueHandle(Handle handle) : this(handle._value) { } internal ConstantSingleValueHandle(int value) { HandleType hType = (HandleType)((uint)value >> 25); Debug.Assert(hType == HandleType.ConstantSingleValue || hType == HandleType.Null); _value = (value & 0x01FFFFFF) | (((int)HandleType.ConstantSingleValue) << 25); _Validate(); } public override bool Equals(object obj) { if (obj is ConstantSingleValueHandle) return _value == ((ConstantSingleValueHandle)obj)._value; else if (obj is Handle) return _value == ((Handle)obj)._value; else return false; } // Equals public bool Equals(ConstantSingleValueHandle handle) => _value == handle._value; public bool Equals(Handle handle) => _value == handle._value; public override int GetHashCode() => (int)_value; public static implicit operator Handle(ConstantSingleValueHandle handle) => new Handle(handle._value); internal int Offset => (_value & 0x01FFFFFF); public ConstantSingleValue GetConstantSingleValue(MetadataReader reader) => new ConstantSingleValue(reader, this); public bool IsNil => (_value & 0x01FFFFFF) == 0; [System.Diagnostics.Conditional("DEBUG")] internal void _Validate() { if ((HandleType)((uint)_value >> 25) != HandleType.ConstantSingleValue) throw new ArgumentException(); } // _Validate #if DEBUG public override string ToString() => string.Format("{0:X8}", _value); #endif } // ConstantSingleValueHandle #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct ConstantStringArray { private readonly MetadataReader _reader; private readonly ConstantStringArrayHandle _handle; internal ConstantStringArray(MetadataReader reader, ConstantStringArrayHandle handle) { _reader = reader; _handle = handle; uint offset = (uint)handle.Offset; NativeReader streamReader = reader._streamReader; offset = streamReader.Read(offset, out _value); } public ConstantStringArrayHandle Handle => _handle; /// One of: ConstantStringValue, ConstantReferenceValue public HandleCollection Value => _value; private readonly HandleCollection _value; } // ConstantStringArray #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct ConstantStringArrayHandle { internal readonly int _value; internal ConstantStringArrayHandle(Handle handle) : this(handle._value) { } internal ConstantStringArrayHandle(int value) { HandleType hType = (HandleType)((uint)value >> 25); Debug.Assert(hType == HandleType.ConstantStringArray || hType == HandleType.Null); _value = (value & 0x01FFFFFF) | (((int)HandleType.ConstantStringArray) << 25); _Validate(); } public override bool Equals(object obj) { if (obj is ConstantStringArrayHandle) return _value == ((ConstantStringArrayHandle)obj)._value; else if (obj is Handle) return _value == ((Handle)obj)._value; else return false; } // Equals public bool Equals(ConstantStringArrayHandle handle) => _value == handle._value; public bool Equals(Handle handle) => _value == handle._value; public override int GetHashCode() => (int)_value; public static implicit operator Handle(ConstantStringArrayHandle handle) => new Handle(handle._value); internal int Offset => (_value & 0x01FFFFFF); public ConstantStringArray GetConstantStringArray(MetadataReader reader) => new ConstantStringArray(reader, this); public bool IsNil => (_value & 0x01FFFFFF) == 0; [System.Diagnostics.Conditional("DEBUG")] internal void _Validate() { if ((HandleType)((uint)_value >> 25) != HandleType.ConstantStringArray) throw new ArgumentException(); } // _Validate #if DEBUG public override string ToString() => string.Format("{0:X8}", _value); #endif } // ConstantStringArrayHandle #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct ConstantStringValue { private readonly MetadataReader _reader; private readonly ConstantStringValueHandle _handle; internal ConstantStringValue(MetadataReader reader, ConstantStringValueHandle handle) { if (handle.IsNil) return; _reader = reader; _handle = handle; uint offset = (uint)handle.Offset; NativeReader streamReader = reader._streamReader; offset = streamReader.Read(offset, out _value); } public ConstantStringValueHandle Handle => _handle; public string Value => _value; private readonly string _value; } // ConstantStringValue #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct ConstantStringValueHandle { internal readonly int _value; internal ConstantStringValueHandle(Handle handle) : this(handle._value) { } internal ConstantStringValueHandle(int value) { HandleType hType = (HandleType)((uint)value >> 25); Debug.Assert(hType == HandleType.ConstantStringValue || hType == HandleType.Null); _value = (value & 0x01FFFFFF) | (((int)HandleType.ConstantStringValue) << 25); _Validate(); } public override bool Equals(object obj) { if (obj is ConstantStringValueHandle) return _value == ((ConstantStringValueHandle)obj)._value; else if (obj is Handle) return _value == ((Handle)obj)._value; else return false; } // Equals public bool Equals(ConstantStringValueHandle handle) => _value == handle._value; public bool Equals(Handle handle) => _value == handle._value; public override int GetHashCode() => (int)_value; public static implicit operator Handle(ConstantStringValueHandle handle) => new Handle(handle._value); internal int Offset => (_value & 0x01FFFFFF); public ConstantStringValue GetConstantStringValue(MetadataReader reader) => new ConstantStringValue(reader, this); public bool IsNil => (_value & 0x01FFFFFF) == 0; [System.Diagnostics.Conditional("DEBUG")] internal void _Validate() { if ((HandleType)((uint)_value >> 25) != HandleType.ConstantStringValue) throw new ArgumentException(); } // _Validate #if DEBUG public override string ToString() => string.Format("{0:X8}", _value); #endif } // ConstantStringValueHandle #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct ConstantUInt16Array { private readonly MetadataReader _reader; private readonly ConstantUInt16ArrayHandle _handle; internal ConstantUInt16Array(MetadataReader reader, ConstantUInt16ArrayHandle handle) { _reader = reader; _handle = handle; uint offset = (uint)handle.Offset; NativeReader streamReader = reader._streamReader; offset = streamReader.Read(offset, out _value); } public ConstantUInt16ArrayHandle Handle => _handle; public UInt16Collection Value => _value; private readonly UInt16Collection _value; } // ConstantUInt16Array #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct ConstantUInt16ArrayHandle { internal readonly int _value; internal ConstantUInt16ArrayHandle(Handle handle) : this(handle._value) { } internal ConstantUInt16ArrayHandle(int value) { HandleType hType = (HandleType)((uint)value >> 25); Debug.Assert(hType == HandleType.ConstantUInt16Array || hType == HandleType.Null); _value = (value & 0x01FFFFFF) | (((int)HandleType.ConstantUInt16Array) << 25); _Validate(); } public override bool Equals(object obj) { if (obj is ConstantUInt16ArrayHandle) return _value == ((ConstantUInt16ArrayHandle)obj)._value; else if (obj is Handle) return _value == ((Handle)obj)._value; else return false; } // Equals public bool Equals(ConstantUInt16ArrayHandle handle) => _value == handle._value; public bool Equals(Handle handle) => _value == handle._value; public override int GetHashCode() => (int)_value; public static implicit operator Handle(ConstantUInt16ArrayHandle handle) => new Handle(handle._value); internal int Offset => (_value & 0x01FFFFFF); public ConstantUInt16Array GetConstantUInt16Array(MetadataReader reader) => new ConstantUInt16Array(reader, this); public bool IsNil => (_value & 0x01FFFFFF) == 0; [System.Diagnostics.Conditional("DEBUG")] internal void _Validate() { if ((HandleType)((uint)_value >> 25) != HandleType.ConstantUInt16Array) throw new ArgumentException(); } // _Validate #if DEBUG public override string ToString() => string.Format("{0:X8}", _value); #endif } // ConstantUInt16ArrayHandle #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct ConstantUInt16Value { private readonly MetadataReader _reader; private readonly ConstantUInt16ValueHandle _handle; internal ConstantUInt16Value(MetadataReader reader, ConstantUInt16ValueHandle handle) { _reader = reader; _handle = handle; uint offset = (uint)handle.Offset; NativeReader streamReader = reader._streamReader; offset = streamReader.Read(offset, out _value); } public ConstantUInt16ValueHandle Handle => _handle; public ushort Value => _value; private readonly ushort _value; } // ConstantUInt16Value #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct ConstantUInt16ValueHandle { internal readonly int _value; internal ConstantUInt16ValueHandle(Handle handle) : this(handle._value) { } internal ConstantUInt16ValueHandle(int value) { HandleType hType = (HandleType)((uint)value >> 25); Debug.Assert(hType == HandleType.ConstantUInt16Value || hType == HandleType.Null); _value = (value & 0x01FFFFFF) | (((int)HandleType.ConstantUInt16Value) << 25); _Validate(); } public override bool Equals(object obj) { if (obj is ConstantUInt16ValueHandle) return _value == ((ConstantUInt16ValueHandle)obj)._value; else if (obj is Handle) return _value == ((Handle)obj)._value; else return false; } // Equals public bool Equals(ConstantUInt16ValueHandle handle) => _value == handle._value; public bool Equals(Handle handle) => _value == handle._value; public override int GetHashCode() => (int)_value; public static implicit operator Handle(ConstantUInt16ValueHandle handle) => new Handle(handle._value); internal int Offset => (_value & 0x01FFFFFF); public ConstantUInt16Value GetConstantUInt16Value(MetadataReader reader) => new ConstantUInt16Value(reader, this); public bool IsNil => (_value & 0x01FFFFFF) == 0; [System.Diagnostics.Conditional("DEBUG")] internal void _Validate() { if ((HandleType)((uint)_value >> 25) != HandleType.ConstantUInt16Value) throw new ArgumentException(); } // _Validate #if DEBUG public override string ToString() => string.Format("{0:X8}", _value); #endif } // ConstantUInt16ValueHandle #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct ConstantUInt32Array { private readonly MetadataReader _reader; private readonly ConstantUInt32ArrayHandle _handle; internal ConstantUInt32Array(MetadataReader reader, ConstantUInt32ArrayHandle handle) { _reader = reader; _handle = handle; uint offset = (uint)handle.Offset; NativeReader streamReader = reader._streamReader; offset = streamReader.Read(offset, out _value); } public ConstantUInt32ArrayHandle Handle => _handle; public UInt32Collection Value => _value; private readonly UInt32Collection _value; } // ConstantUInt32Array #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct ConstantUInt32ArrayHandle { internal readonly int _value; internal ConstantUInt32ArrayHandle(Handle handle) : this(handle._value) { } internal ConstantUInt32ArrayHandle(int value) { HandleType hType = (HandleType)((uint)value >> 25); Debug.Assert(hType == HandleType.ConstantUInt32Array || hType == HandleType.Null); _value = (value & 0x01FFFFFF) | (((int)HandleType.ConstantUInt32Array) << 25); _Validate(); } public override bool Equals(object obj) { if (obj is ConstantUInt32ArrayHandle) return _value == ((ConstantUInt32ArrayHandle)obj)._value; else if (obj is Handle) return _value == ((Handle)obj)._value; else return false; } // Equals public bool Equals(ConstantUInt32ArrayHandle handle) => _value == handle._value; public bool Equals(Handle handle) => _value == handle._value; public override int GetHashCode() => (int)_value; public static implicit operator Handle(ConstantUInt32ArrayHandle handle) => new Handle(handle._value); internal int Offset => (_value & 0x01FFFFFF); public ConstantUInt32Array GetConstantUInt32Array(MetadataReader reader) => new ConstantUInt32Array(reader, this); public bool IsNil => (_value & 0x01FFFFFF) == 0; [System.Diagnostics.Conditional("DEBUG")] internal void _Validate() { if ((HandleType)((uint)_value >> 25) != HandleType.ConstantUInt32Array) throw new ArgumentException(); } // _Validate #if DEBUG public override string ToString() => string.Format("{0:X8}", _value); #endif } // ConstantUInt32ArrayHandle #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct ConstantUInt32Value { private readonly MetadataReader _reader; private readonly ConstantUInt32ValueHandle _handle; internal ConstantUInt32Value(MetadataReader reader, ConstantUInt32ValueHandle handle) { _reader = reader; _handle = handle; uint offset = (uint)handle.Offset; NativeReader streamReader = reader._streamReader; offset = streamReader.Read(offset, out _value); } public ConstantUInt32ValueHandle Handle => _handle; public uint Value => _value; private readonly uint _value; } // ConstantUInt32Value #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct ConstantUInt32ValueHandle { internal readonly int _value; internal ConstantUInt32ValueHandle(Handle handle) : this(handle._value) { } internal ConstantUInt32ValueHandle(int value) { HandleType hType = (HandleType)((uint)value >> 25); Debug.Assert(hType == HandleType.ConstantUInt32Value || hType == HandleType.Null); _value = (value & 0x01FFFFFF) | (((int)HandleType.ConstantUInt32Value) << 25); _Validate(); } public override bool Equals(object obj) { if (obj is ConstantUInt32ValueHandle) return _value == ((ConstantUInt32ValueHandle)obj)._value; else if (obj is Handle) return _value == ((Handle)obj)._value; else return false; } // Equals public bool Equals(ConstantUInt32ValueHandle handle) => _value == handle._value; public bool Equals(Handle handle) => _value == handle._value; public override int GetHashCode() => (int)_value; public static implicit operator Handle(ConstantUInt32ValueHandle handle) => new Handle(handle._value); internal int Offset => (_value & 0x01FFFFFF); public ConstantUInt32Value GetConstantUInt32Value(MetadataReader reader) => new ConstantUInt32Value(reader, this); public bool IsNil => (_value & 0x01FFFFFF) == 0; [System.Diagnostics.Conditional("DEBUG")] internal void _Validate() { if ((HandleType)((uint)_value >> 25) != HandleType.ConstantUInt32Value) throw new ArgumentException(); } // _Validate #if DEBUG public override string ToString() => string.Format("{0:X8}", _value); #endif } // ConstantUInt32ValueHandle #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct ConstantUInt64Array { private readonly MetadataReader _reader; private readonly ConstantUInt64ArrayHandle _handle; internal ConstantUInt64Array(MetadataReader reader, ConstantUInt64ArrayHandle handle) { _reader = reader; _handle = handle; uint offset = (uint)handle.Offset; NativeReader streamReader = reader._streamReader; offset = streamReader.Read(offset, out _value); } public ConstantUInt64ArrayHandle Handle => _handle; public UInt64Collection Value => _value; private readonly UInt64Collection _value; } // ConstantUInt64Array #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct ConstantUInt64ArrayHandle { internal readonly int _value; internal ConstantUInt64ArrayHandle(Handle handle) : this(handle._value) { } internal ConstantUInt64ArrayHandle(int value) { HandleType hType = (HandleType)((uint)value >> 25); Debug.Assert(hType == HandleType.ConstantUInt64Array || hType == HandleType.Null); _value = (value & 0x01FFFFFF) | (((int)HandleType.ConstantUInt64Array) << 25); _Validate(); } public override bool Equals(object obj) { if (obj is ConstantUInt64ArrayHandle) return _value == ((ConstantUInt64ArrayHandle)obj)._value; else if (obj is Handle) return _value == ((Handle)obj)._value; else return false; } // Equals public bool Equals(ConstantUInt64ArrayHandle handle) => _value == handle._value; public bool Equals(Handle handle) => _value == handle._value; public override int GetHashCode() => (int)_value; public static implicit operator Handle(ConstantUInt64ArrayHandle handle) => new Handle(handle._value); internal int Offset => (_value & 0x01FFFFFF); public ConstantUInt64Array GetConstantUInt64Array(MetadataReader reader) => new ConstantUInt64Array(reader, this); public bool IsNil => (_value & 0x01FFFFFF) == 0; [System.Diagnostics.Conditional("DEBUG")] internal void _Validate() { if ((HandleType)((uint)_value >> 25) != HandleType.ConstantUInt64Array) throw new ArgumentException(); } // _Validate #if DEBUG public override string ToString() => string.Format("{0:X8}", _value); #endif } // ConstantUInt64ArrayHandle #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct ConstantUInt64Value { private readonly MetadataReader _reader; private readonly ConstantUInt64ValueHandle _handle; internal ConstantUInt64Value(MetadataReader reader, ConstantUInt64ValueHandle handle) { _reader = reader; _handle = handle; uint offset = (uint)handle.Offset; NativeReader streamReader = reader._streamReader; offset = streamReader.Read(offset, out _value); } public ConstantUInt64ValueHandle Handle => _handle; public ulong Value => _value; private readonly ulong _value; } // ConstantUInt64Value #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct ConstantUInt64ValueHandle { internal readonly int _value; internal ConstantUInt64ValueHandle(Handle handle) : this(handle._value) { } internal ConstantUInt64ValueHandle(int value) { HandleType hType = (HandleType)((uint)value >> 25); Debug.Assert(hType == HandleType.ConstantUInt64Value || hType == HandleType.Null); _value = (value & 0x01FFFFFF) | (((int)HandleType.ConstantUInt64Value) << 25); _Validate(); } public override bool Equals(object obj) { if (obj is ConstantUInt64ValueHandle) return _value == ((ConstantUInt64ValueHandle)obj)._value; else if (obj is Handle) return _value == ((Handle)obj)._value; else return false; } // Equals public bool Equals(ConstantUInt64ValueHandle handle) => _value == handle._value; public bool Equals(Handle handle) => _value == handle._value; public override int GetHashCode() => (int)_value; public static implicit operator Handle(ConstantUInt64ValueHandle handle) => new Handle(handle._value); internal int Offset => (_value & 0x01FFFFFF); public ConstantUInt64Value GetConstantUInt64Value(MetadataReader reader) => new ConstantUInt64Value(reader, this); public bool IsNil => (_value & 0x01FFFFFF) == 0; [System.Diagnostics.Conditional("DEBUG")] internal void _Validate() { if ((HandleType)((uint)_value >> 25) != HandleType.ConstantUInt64Value) throw new ArgumentException(); } // _Validate #if DEBUG public override string ToString() => string.Format("{0:X8}", _value); #endif } // ConstantUInt64ValueHandle #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct CustomAttribute { private readonly MetadataReader _reader; private readonly CustomAttributeHandle _handle; internal CustomAttribute(MetadataReader reader, CustomAttributeHandle handle) { _reader = reader; _handle = handle; uint offset = (uint)handle.Offset; NativeReader streamReader = reader._streamReader; offset = streamReader.Read(offset, out _constructor); offset = streamReader.Read(offset, out _fixedArguments); offset = streamReader.Read(offset, out _namedArguments); } public CustomAttributeHandle Handle => _handle; /// One of: QualifiedMethod, MemberReference public Handle Constructor => _constructor; private readonly Handle _constructor; /// One of: TypeDefinition, TypeReference, TypeSpecification, ConstantBooleanArray, ConstantBooleanValue, ConstantByteArray, ConstantByteValue, ConstantCharArray, ConstantCharValue, ConstantDoubleArray, ConstantDoubleValue, ConstantEnumArray, ConstantEnumValue, ConstantHandleArray, ConstantInt16Array, ConstantInt16Value, ConstantInt32Array, ConstantInt32Value, ConstantInt64Array, ConstantInt64Value, ConstantReferenceValue, ConstantSByteArray, ConstantSByteValue, ConstantSingleArray, ConstantSingleValue, ConstantStringArray, ConstantStringValue, ConstantUInt16Array, ConstantUInt16Value, ConstantUInt32Array, ConstantUInt32Value, ConstantUInt64Array, ConstantUInt64Value public HandleCollection FixedArguments => _fixedArguments; private readonly HandleCollection _fixedArguments; public NamedArgumentHandleCollection NamedArguments => _namedArguments; private readonly NamedArgumentHandleCollection _namedArguments; } // CustomAttribute #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct CustomAttributeHandle { internal readonly int _value; internal CustomAttributeHandle(Handle handle) : this(handle._value) { } internal CustomAttributeHandle(int value) { HandleType hType = (HandleType)((uint)value >> 25); Debug.Assert(hType == HandleType.CustomAttribute || hType == HandleType.Null); _value = (value & 0x01FFFFFF) | (((int)HandleType.CustomAttribute) << 25); _Validate(); } public override bool Equals(object obj) { if (obj is CustomAttributeHandle) return _value == ((CustomAttributeHandle)obj)._value; else if (obj is Handle) return _value == ((Handle)obj)._value; else return false; } // Equals public bool Equals(CustomAttributeHandle handle) => _value == handle._value; public bool Equals(Handle handle) => _value == handle._value; public override int GetHashCode() => (int)_value; public static implicit operator Handle(CustomAttributeHandle handle) => new Handle(handle._value); internal int Offset => (_value & 0x01FFFFFF); public CustomAttribute GetCustomAttribute(MetadataReader reader) => new CustomAttribute(reader, this); public bool IsNil => (_value & 0x01FFFFFF) == 0; [System.Diagnostics.Conditional("DEBUG")] internal void _Validate() { if ((HandleType)((uint)_value >> 25) != HandleType.CustomAttribute) throw new ArgumentException(); } // _Validate #if DEBUG public override string ToString() => string.Format("{0:X8}", _value); #endif } // CustomAttributeHandle #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct Event { private readonly MetadataReader _reader; private readonly EventHandle _handle; internal Event(MetadataReader reader, EventHandle handle) { _reader = reader; _handle = handle; uint offset = (uint)handle.Offset; NativeReader streamReader = reader._streamReader; offset = streamReader.Read(offset, out _flags); offset = streamReader.Read(offset, out _name); offset = streamReader.Read(offset, out _type); offset = streamReader.Read(offset, out _methodSemantics); offset = streamReader.Read(offset, out _customAttributes); } public EventHandle Handle => _handle; public EventAttributes Flags => _flags; private readonly EventAttributes _flags; public ConstantStringValueHandle Name => _name; private readonly ConstantStringValueHandle _name; /// One of: TypeDefinition, TypeReference, TypeSpecification public Handle Type => _type; private readonly Handle _type; public MethodSemanticsHandleCollection MethodSemantics => _methodSemantics; private readonly MethodSemanticsHandleCollection _methodSemantics; public CustomAttributeHandleCollection CustomAttributes => _customAttributes; private readonly CustomAttributeHandleCollection _customAttributes; } // Event #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct EventHandle { internal readonly int _value; internal EventHandle(Handle handle) : this(handle._value) { } internal EventHandle(int value) { HandleType hType = (HandleType)((uint)value >> 25); Debug.Assert(hType == HandleType.Event || hType == HandleType.Null); _value = (value & 0x01FFFFFF) | (((int)HandleType.Event) << 25); _Validate(); } public override bool Equals(object obj) { if (obj is EventHandle) return _value == ((EventHandle)obj)._value; else if (obj is Handle) return _value == ((Handle)obj)._value; else return false; } // Equals public bool Equals(EventHandle handle) => _value == handle._value; public bool Equals(Handle handle) => _value == handle._value; public override int GetHashCode() => (int)_value; public static implicit operator Handle(EventHandle handle) => new Handle(handle._value); internal int Offset => (_value & 0x01FFFFFF); public Event GetEvent(MetadataReader reader) => new Event(reader, this); public bool IsNil => (_value & 0x01FFFFFF) == 0; [System.Diagnostics.Conditional("DEBUG")] internal void _Validate() { if ((HandleType)((uint)_value >> 25) != HandleType.Event) throw new ArgumentException(); } // _Validate #if DEBUG public override string ToString() => string.Format("{0:X8}", _value); #endif } // EventHandle #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct Field { private readonly MetadataReader _reader; private readonly FieldHandle _handle; internal Field(MetadataReader reader, FieldHandle handle) { _reader = reader; _handle = handle; uint offset = (uint)handle.Offset; NativeReader streamReader = reader._streamReader; offset = streamReader.Read(offset, out _flags); offset = streamReader.Read(offset, out _name); offset = streamReader.Read(offset, out _signature); offset = streamReader.Read(offset, out _defaultValue); offset = streamReader.Read(offset, out _offset); offset = streamReader.Read(offset, out _customAttributes); } public FieldHandle Handle => _handle; public FieldAttributes Flags => _flags; private readonly FieldAttributes _flags; public ConstantStringValueHandle Name => _name; private readonly ConstantStringValueHandle _name; public FieldSignatureHandle Signature => _signature; private readonly FieldSignatureHandle _signature; /// One of: TypeDefinition, TypeReference, TypeSpecification, ConstantBooleanArray, ConstantBooleanValue, ConstantByteArray, ConstantByteValue, ConstantCharArray, ConstantCharValue, ConstantDoubleArray, ConstantDoubleValue, ConstantEnumArray, ConstantEnumValue, ConstantHandleArray, ConstantInt16Array, ConstantInt16Value, ConstantInt32Array, ConstantInt32Value, ConstantInt64Array, ConstantInt64Value, ConstantReferenceValue, ConstantSByteArray, ConstantSByteValue, ConstantSingleArray, ConstantSingleValue, ConstantStringArray, ConstantStringValue, ConstantUInt16Array, ConstantUInt16Value, ConstantUInt32Array, ConstantUInt32Value, ConstantUInt64Array, ConstantUInt64Value public Handle DefaultValue => _defaultValue; private readonly Handle _defaultValue; public uint Offset => _offset; private readonly uint _offset; public CustomAttributeHandleCollection CustomAttributes => _customAttributes; private readonly CustomAttributeHandleCollection _customAttributes; } // Field #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct FieldHandle { internal readonly int _value; internal FieldHandle(Handle handle) : this(handle._value) { } internal FieldHandle(int value) { HandleType hType = (HandleType)((uint)value >> 25); Debug.Assert(hType == HandleType.Field || hType == HandleType.Null); _value = (value & 0x01FFFFFF) | (((int)HandleType.Field) << 25); _Validate(); } public override bool Equals(object obj) { if (obj is FieldHandle) return _value == ((FieldHandle)obj)._value; else if (obj is Handle) return _value == ((Handle)obj)._value; else return false; } // Equals public bool Equals(FieldHandle handle) => _value == handle._value; public bool Equals(Handle handle) => _value == handle._value; public override int GetHashCode() => (int)_value; public static implicit operator Handle(FieldHandle handle) => new Handle(handle._value); internal int Offset => (_value & 0x01FFFFFF); public Field GetField(MetadataReader reader) => new Field(reader, this); public bool IsNil => (_value & 0x01FFFFFF) == 0; [System.Diagnostics.Conditional("DEBUG")] internal void _Validate() { if ((HandleType)((uint)_value >> 25) != HandleType.Field) throw new ArgumentException(); } // _Validate #if DEBUG public override string ToString() => string.Format("{0:X8}", _value); #endif } // FieldHandle #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct FieldSignature { private readonly MetadataReader _reader; private readonly FieldSignatureHandle _handle; internal FieldSignature(MetadataReader reader, FieldSignatureHandle handle) { _reader = reader; _handle = handle; uint offset = (uint)handle.Offset; NativeReader streamReader = reader._streamReader; offset = streamReader.Read(offset, out _type); } public FieldSignatureHandle Handle => _handle; /// One of: TypeDefinition, TypeReference, TypeSpecification, ModifiedType public Handle Type => _type; private readonly Handle _type; } // FieldSignature #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct FieldSignatureHandle { internal readonly int _value; internal FieldSignatureHandle(Handle handle) : this(handle._value) { } internal FieldSignatureHandle(int value) { HandleType hType = (HandleType)((uint)value >> 25); Debug.Assert(hType == HandleType.FieldSignature || hType == HandleType.Null); _value = (value & 0x01FFFFFF) | (((int)HandleType.FieldSignature) << 25); _Validate(); } public override bool Equals(object obj) { if (obj is FieldSignatureHandle) return _value == ((FieldSignatureHandle)obj)._value; else if (obj is Handle) return _value == ((Handle)obj)._value; else return false; } // Equals public bool Equals(FieldSignatureHandle handle) => _value == handle._value; public bool Equals(Handle handle) => _value == handle._value; public override int GetHashCode() => (int)_value; public static implicit operator Handle(FieldSignatureHandle handle) => new Handle(handle._value); internal int Offset => (_value & 0x01FFFFFF); public FieldSignature GetFieldSignature(MetadataReader reader) => new FieldSignature(reader, this); public bool IsNil => (_value & 0x01FFFFFF) == 0; [System.Diagnostics.Conditional("DEBUG")] internal void _Validate() { if ((HandleType)((uint)_value >> 25) != HandleType.FieldSignature) throw new ArgumentException(); } // _Validate #if DEBUG public override string ToString() => string.Format("{0:X8}", _value); #endif } // FieldSignatureHandle #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct FunctionPointerSignature { private readonly MetadataReader _reader; private readonly FunctionPointerSignatureHandle _handle; internal FunctionPointerSignature(MetadataReader reader, FunctionPointerSignatureHandle handle) { _reader = reader; _handle = handle; uint offset = (uint)handle.Offset; NativeReader streamReader = reader._streamReader; offset = streamReader.Read(offset, out _signature); } public FunctionPointerSignatureHandle Handle => _handle; public MethodSignatureHandle Signature => _signature; private readonly MethodSignatureHandle _signature; } // FunctionPointerSignature #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct FunctionPointerSignatureHandle { internal readonly int _value; internal FunctionPointerSignatureHandle(Handle handle) : this(handle._value) { } internal FunctionPointerSignatureHandle(int value) { HandleType hType = (HandleType)((uint)value >> 25); Debug.Assert(hType == HandleType.FunctionPointerSignature || hType == HandleType.Null); _value = (value & 0x01FFFFFF) | (((int)HandleType.FunctionPointerSignature) << 25); _Validate(); } public override bool Equals(object obj) { if (obj is FunctionPointerSignatureHandle) return _value == ((FunctionPointerSignatureHandle)obj)._value; else if (obj is Handle) return _value == ((Handle)obj)._value; else return false; } // Equals public bool Equals(FunctionPointerSignatureHandle handle) => _value == handle._value; public bool Equals(Handle handle) => _value == handle._value; public override int GetHashCode() => (int)_value; public static implicit operator Handle(FunctionPointerSignatureHandle handle) => new Handle(handle._value); internal int Offset => (_value & 0x01FFFFFF); public FunctionPointerSignature GetFunctionPointerSignature(MetadataReader reader) => new FunctionPointerSignature(reader, this); public bool IsNil => (_value & 0x01FFFFFF) == 0; [System.Diagnostics.Conditional("DEBUG")] internal void _Validate() { if ((HandleType)((uint)_value >> 25) != HandleType.FunctionPointerSignature) throw new ArgumentException(); } // _Validate #if DEBUG public override string ToString() => string.Format("{0:X8}", _value); #endif } // FunctionPointerSignatureHandle #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct GenericParameter { private readonly MetadataReader _reader; private readonly GenericParameterHandle _handle; internal GenericParameter(MetadataReader reader, GenericParameterHandle handle) { _reader = reader; _handle = handle; uint offset = (uint)handle.Offset; NativeReader streamReader = reader._streamReader; offset = streamReader.Read(offset, out _number); offset = streamReader.Read(offset, out _flags); offset = streamReader.Read(offset, out _kind); offset = streamReader.Read(offset, out _name); offset = streamReader.Read(offset, out _constraints); offset = streamReader.Read(offset, out _customAttributes); } public GenericParameterHandle Handle => _handle; public ushort Number => _number; private readonly ushort _number; public GenericParameterAttributes Flags => _flags; private readonly GenericParameterAttributes _flags; public GenericParameterKind Kind => _kind; private readonly GenericParameterKind _kind; public ConstantStringValueHandle Name => _name; private readonly ConstantStringValueHandle _name; /// One of: TypeDefinition, TypeReference, TypeSpecification, ModifiedType public HandleCollection Constraints => _constraints; private readonly HandleCollection _constraints; public CustomAttributeHandleCollection CustomAttributes => _customAttributes; private readonly CustomAttributeHandleCollection _customAttributes; } // GenericParameter #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct GenericParameterHandle { internal readonly int _value; internal GenericParameterHandle(Handle handle) : this(handle._value) { } internal GenericParameterHandle(int value) { HandleType hType = (HandleType)((uint)value >> 25); Debug.Assert(hType == HandleType.GenericParameter || hType == HandleType.Null); _value = (value & 0x01FFFFFF) | (((int)HandleType.GenericParameter) << 25); _Validate(); } public override bool Equals(object obj) { if (obj is GenericParameterHandle) return _value == ((GenericParameterHandle)obj)._value; else if (obj is Handle) return _value == ((Handle)obj)._value; else return false; } // Equals public bool Equals(GenericParameterHandle handle) => _value == handle._value; public bool Equals(Handle handle) => _value == handle._value; public override int GetHashCode() => (int)_value; public static implicit operator Handle(GenericParameterHandle handle) => new Handle(handle._value); internal int Offset => (_value & 0x01FFFFFF); public GenericParameter GetGenericParameter(MetadataReader reader) => new GenericParameter(reader, this); public bool IsNil => (_value & 0x01FFFFFF) == 0; [System.Diagnostics.Conditional("DEBUG")] internal void _Validate() { if ((HandleType)((uint)_value >> 25) != HandleType.GenericParameter) throw new ArgumentException(); } // _Validate #if DEBUG public override string ToString() => string.Format("{0:X8}", _value); #endif } // GenericParameterHandle #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct MemberReference { private readonly MetadataReader _reader; private readonly MemberReferenceHandle _handle; internal MemberReference(MetadataReader reader, MemberReferenceHandle handle) { _reader = reader; _handle = handle; uint offset = (uint)handle.Offset; NativeReader streamReader = reader._streamReader; offset = streamReader.Read(offset, out _parent); offset = streamReader.Read(offset, out _name); offset = streamReader.Read(offset, out _signature); } public MemberReferenceHandle Handle => _handle; /// One of: TypeDefinition, TypeReference, TypeSpecification public Handle Parent => _parent; private readonly Handle _parent; public ConstantStringValueHandle Name => _name; private readonly ConstantStringValueHandle _name; /// One of: MethodSignature, FieldSignature public Handle Signature => _signature; private readonly Handle _signature; } // MemberReference #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct MemberReferenceHandle { internal readonly int _value; internal MemberReferenceHandle(Handle handle) : this(handle._value) { } internal MemberReferenceHandle(int value) { HandleType hType = (HandleType)((uint)value >> 25); Debug.Assert(hType == HandleType.MemberReference || hType == HandleType.Null); _value = (value & 0x01FFFFFF) | (((int)HandleType.MemberReference) << 25); _Validate(); } public override bool Equals(object obj) { if (obj is MemberReferenceHandle) return _value == ((MemberReferenceHandle)obj)._value; else if (obj is Handle) return _value == ((Handle)obj)._value; else return false; } // Equals public bool Equals(MemberReferenceHandle handle) => _value == handle._value; public bool Equals(Handle handle) => _value == handle._value; public override int GetHashCode() => (int)_value; public static implicit operator Handle(MemberReferenceHandle handle) => new Handle(handle._value); internal int Offset => (_value & 0x01FFFFFF); public MemberReference GetMemberReference(MetadataReader reader) => new MemberReference(reader, this); public bool IsNil => (_value & 0x01FFFFFF) == 0; [System.Diagnostics.Conditional("DEBUG")] internal void _Validate() { if ((HandleType)((uint)_value >> 25) != HandleType.MemberReference) throw new ArgumentException(); } // _Validate #if DEBUG public override string ToString() => string.Format("{0:X8}", _value); #endif } // MemberReferenceHandle #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct Method { private readonly MetadataReader _reader; private readonly MethodHandle _handle; internal Method(MetadataReader reader, MethodHandle handle) { _reader = reader; _handle = handle; uint offset = (uint)handle.Offset; NativeReader streamReader = reader._streamReader; offset = streamReader.Read(offset, out _flags); offset = streamReader.Read(offset, out _implFlags); offset = streamReader.Read(offset, out _name); offset = streamReader.Read(offset, out _signature); offset = streamReader.Read(offset, out _parameters); offset = streamReader.Read(offset, out _genericParameters); offset = streamReader.Read(offset, out _customAttributes); } public MethodHandle Handle => _handle; public MethodAttributes Flags => _flags; private readonly MethodAttributes _flags; public MethodImplAttributes ImplFlags => _implFlags; private readonly MethodImplAttributes _implFlags; public ConstantStringValueHandle Name => _name; private readonly ConstantStringValueHandle _name; public MethodSignatureHandle Signature => _signature; private readonly MethodSignatureHandle _signature; public ParameterHandleCollection Parameters => _parameters; private readonly ParameterHandleCollection _parameters; public GenericParameterHandleCollection GenericParameters => _genericParameters; private readonly GenericParameterHandleCollection _genericParameters; public CustomAttributeHandleCollection CustomAttributes => _customAttributes; private readonly CustomAttributeHandleCollection _customAttributes; } // Method #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct MethodHandle { internal readonly int _value; internal MethodHandle(Handle handle) : this(handle._value) { } internal MethodHandle(int value) { HandleType hType = (HandleType)((uint)value >> 25); Debug.Assert(hType == HandleType.Method || hType == HandleType.Null); _value = (value & 0x01FFFFFF) | (((int)HandleType.Method) << 25); _Validate(); } public override bool Equals(object obj) { if (obj is MethodHandle) return _value == ((MethodHandle)obj)._value; else if (obj is Handle) return _value == ((Handle)obj)._value; else return false; } // Equals public bool Equals(MethodHandle handle) => _value == handle._value; public bool Equals(Handle handle) => _value == handle._value; public override int GetHashCode() => (int)_value; public static implicit operator Handle(MethodHandle handle) => new Handle(handle._value); internal int Offset => (_value & 0x01FFFFFF); public Method GetMethod(MetadataReader reader) => new Method(reader, this); public bool IsNil => (_value & 0x01FFFFFF) == 0; [System.Diagnostics.Conditional("DEBUG")] internal void _Validate() { if ((HandleType)((uint)_value >> 25) != HandleType.Method) throw new ArgumentException(); } // _Validate #if DEBUG public override string ToString() => string.Format("{0:X8}", _value); #endif } // MethodHandle #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct MethodInstantiation { private readonly MetadataReader _reader; private readonly MethodInstantiationHandle _handle; internal MethodInstantiation(MetadataReader reader, MethodInstantiationHandle handle) { _reader = reader; _handle = handle; uint offset = (uint)handle.Offset; NativeReader streamReader = reader._streamReader; offset = streamReader.Read(offset, out _method); offset = streamReader.Read(offset, out _genericTypeArguments); } public MethodInstantiationHandle Handle => _handle; /// One of: QualifiedMethod, MemberReference public Handle Method => _method; private readonly Handle _method; /// One of: TypeDefinition, TypeReference, TypeSpecification, ModifiedType public HandleCollection GenericTypeArguments => _genericTypeArguments; private readonly HandleCollection _genericTypeArguments; } // MethodInstantiation #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct MethodInstantiationHandle { internal readonly int _value; internal MethodInstantiationHandle(Handle handle) : this(handle._value) { } internal MethodInstantiationHandle(int value) { HandleType hType = (HandleType)((uint)value >> 25); Debug.Assert(hType == HandleType.MethodInstantiation || hType == HandleType.Null); _value = (value & 0x01FFFFFF) | (((int)HandleType.MethodInstantiation) << 25); _Validate(); } public override bool Equals(object obj) { if (obj is MethodInstantiationHandle) return _value == ((MethodInstantiationHandle)obj)._value; else if (obj is Handle) return _value == ((Handle)obj)._value; else return false; } // Equals public bool Equals(MethodInstantiationHandle handle) => _value == handle._value; public bool Equals(Handle handle) => _value == handle._value; public override int GetHashCode() => (int)_value; public static implicit operator Handle(MethodInstantiationHandle handle) => new Handle(handle._value); internal int Offset => (_value & 0x01FFFFFF); public MethodInstantiation GetMethodInstantiation(MetadataReader reader) => new MethodInstantiation(reader, this); public bool IsNil => (_value & 0x01FFFFFF) == 0; [System.Diagnostics.Conditional("DEBUG")] internal void _Validate() { if ((HandleType)((uint)_value >> 25) != HandleType.MethodInstantiation) throw new ArgumentException(); } // _Validate #if DEBUG public override string ToString() => string.Format("{0:X8}", _value); #endif } // MethodInstantiationHandle #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct MethodSemantics { private readonly MetadataReader _reader; private readonly MethodSemanticsHandle _handle; internal MethodSemantics(MetadataReader reader, MethodSemanticsHandle handle) { _reader = reader; _handle = handle; uint offset = (uint)handle.Offset; NativeReader streamReader = reader._streamReader; offset = streamReader.Read(offset, out _attributes); offset = streamReader.Read(offset, out _method); } public MethodSemanticsHandle Handle => _handle; public MethodSemanticsAttributes Attributes => _attributes; private readonly MethodSemanticsAttributes _attributes; public MethodHandle Method => _method; private readonly MethodHandle _method; } // MethodSemantics #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct MethodSemanticsHandle { internal readonly int _value; internal MethodSemanticsHandle(Handle handle) : this(handle._value) { } internal MethodSemanticsHandle(int value) { HandleType hType = (HandleType)((uint)value >> 25); Debug.Assert(hType == HandleType.MethodSemantics || hType == HandleType.Null); _value = (value & 0x01FFFFFF) | (((int)HandleType.MethodSemantics) << 25); _Validate(); } public override bool Equals(object obj) { if (obj is MethodSemanticsHandle) return _value == ((MethodSemanticsHandle)obj)._value; else if (obj is Handle) return _value == ((Handle)obj)._value; else return false; } // Equals public bool Equals(MethodSemanticsHandle handle) => _value == handle._value; public bool Equals(Handle handle) => _value == handle._value; public override int GetHashCode() => (int)_value; public static implicit operator Handle(MethodSemanticsHandle handle) => new Handle(handle._value); internal int Offset => (_value & 0x01FFFFFF); public MethodSemantics GetMethodSemantics(MetadataReader reader) => new MethodSemantics(reader, this); public bool IsNil => (_value & 0x01FFFFFF) == 0; [System.Diagnostics.Conditional("DEBUG")] internal void _Validate() { if ((HandleType)((uint)_value >> 25) != HandleType.MethodSemantics) throw new ArgumentException(); } // _Validate #if DEBUG public override string ToString() => string.Format("{0:X8}", _value); #endif } // MethodSemanticsHandle #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct MethodSignature { private readonly MetadataReader _reader; private readonly MethodSignatureHandle _handle; internal MethodSignature(MetadataReader reader, MethodSignatureHandle handle) { _reader = reader; _handle = handle; uint offset = (uint)handle.Offset; NativeReader streamReader = reader._streamReader; offset = streamReader.Read(offset, out _callingConvention); offset = streamReader.Read(offset, out _genericParameterCount); offset = streamReader.Read(offset, out _returnType); offset = streamReader.Read(offset, out _parameters); offset = streamReader.Read(offset, out _varArgParameters); } public MethodSignatureHandle Handle => _handle; public SignatureCallingConvention CallingConvention => _callingConvention; private readonly SignatureCallingConvention _callingConvention; public int GenericParameterCount => _genericParameterCount; private readonly int _genericParameterCount; /// One of: TypeDefinition, TypeReference, TypeSpecification, ModifiedType public Handle ReturnType => _returnType; private readonly Handle _returnType; /// One of: TypeDefinition, TypeReference, TypeSpecification, ModifiedType public HandleCollection Parameters => _parameters; private readonly HandleCollection _parameters; /// One of: TypeDefinition, TypeReference, TypeSpecification, ModifiedType public HandleCollection VarArgParameters => _varArgParameters; private readonly HandleCollection _varArgParameters; } // MethodSignature #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct MethodSignatureHandle { internal readonly int _value; internal MethodSignatureHandle(Handle handle) : this(handle._value) { } internal MethodSignatureHandle(int value) { HandleType hType = (HandleType)((uint)value >> 25); Debug.Assert(hType == HandleType.MethodSignature || hType == HandleType.Null); _value = (value & 0x01FFFFFF) | (((int)HandleType.MethodSignature) << 25); _Validate(); } public override bool Equals(object obj) { if (obj is MethodSignatureHandle) return _value == ((MethodSignatureHandle)obj)._value; else if (obj is Handle) return _value == ((Handle)obj)._value; else return false; } // Equals public bool Equals(MethodSignatureHandle handle) => _value == handle._value; public bool Equals(Handle handle) => _value == handle._value; public override int GetHashCode() => (int)_value; public static implicit operator Handle(MethodSignatureHandle handle) => new Handle(handle._value); internal int Offset => (_value & 0x01FFFFFF); public MethodSignature GetMethodSignature(MetadataReader reader) => new MethodSignature(reader, this); public bool IsNil => (_value & 0x01FFFFFF) == 0; [System.Diagnostics.Conditional("DEBUG")] internal void _Validate() { if ((HandleType)((uint)_value >> 25) != HandleType.MethodSignature) throw new ArgumentException(); } // _Validate #if DEBUG public override string ToString() => string.Format("{0:X8}", _value); #endif } // MethodSignatureHandle #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct MethodTypeVariableSignature { private readonly MetadataReader _reader; private readonly MethodTypeVariableSignatureHandle _handle; internal MethodTypeVariableSignature(MetadataReader reader, MethodTypeVariableSignatureHandle handle) { _reader = reader; _handle = handle; uint offset = (uint)handle.Offset; NativeReader streamReader = reader._streamReader; offset = streamReader.Read(offset, out _number); } public MethodTypeVariableSignatureHandle Handle => _handle; public int Number => _number; private readonly int _number; } // MethodTypeVariableSignature #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct MethodTypeVariableSignatureHandle { internal readonly int _value; internal MethodTypeVariableSignatureHandle(Handle handle) : this(handle._value) { } internal MethodTypeVariableSignatureHandle(int value) { HandleType hType = (HandleType)((uint)value >> 25); Debug.Assert(hType == HandleType.MethodTypeVariableSignature || hType == HandleType.Null); _value = (value & 0x01FFFFFF) | (((int)HandleType.MethodTypeVariableSignature) << 25); _Validate(); } public override bool Equals(object obj) { if (obj is MethodTypeVariableSignatureHandle) return _value == ((MethodTypeVariableSignatureHandle)obj)._value; else if (obj is Handle) return _value == ((Handle)obj)._value; else return false; } // Equals public bool Equals(MethodTypeVariableSignatureHandle handle) => _value == handle._value; public bool Equals(Handle handle) => _value == handle._value; public override int GetHashCode() => (int)_value; public static implicit operator Handle(MethodTypeVariableSignatureHandle handle) => new Handle(handle._value); internal int Offset => (_value & 0x01FFFFFF); public MethodTypeVariableSignature GetMethodTypeVariableSignature(MetadataReader reader) => new MethodTypeVariableSignature(reader, this); public bool IsNil => (_value & 0x01FFFFFF) == 0; [System.Diagnostics.Conditional("DEBUG")] internal void _Validate() { if ((HandleType)((uint)_value >> 25) != HandleType.MethodTypeVariableSignature) throw new ArgumentException(); } // _Validate #if DEBUG public override string ToString() => string.Format("{0:X8}", _value); #endif } // MethodTypeVariableSignatureHandle #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct ModifiedType { private readonly MetadataReader _reader; private readonly ModifiedTypeHandle _handle; internal ModifiedType(MetadataReader reader, ModifiedTypeHandle handle) { _reader = reader; _handle = handle; uint offset = (uint)handle.Offset; NativeReader streamReader = reader._streamReader; offset = streamReader.Read(offset, out _isOptional); offset = streamReader.Read(offset, out _modifierType); offset = streamReader.Read(offset, out _type); } public ModifiedTypeHandle Handle => _handle; public bool IsOptional => _isOptional; private readonly bool _isOptional; /// One of: TypeDefinition, TypeReference, TypeSpecification public Handle ModifierType => _modifierType; private readonly Handle _modifierType; /// One of: TypeDefinition, TypeReference, TypeSpecification, ModifiedType public Handle Type => _type; private readonly Handle _type; } // ModifiedType #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct ModifiedTypeHandle { internal readonly int _value; internal ModifiedTypeHandle(Handle handle) : this(handle._value) { } internal ModifiedTypeHandle(int value) { HandleType hType = (HandleType)((uint)value >> 25); Debug.Assert(hType == HandleType.ModifiedType || hType == HandleType.Null); _value = (value & 0x01FFFFFF) | (((int)HandleType.ModifiedType) << 25); _Validate(); } public override bool Equals(object obj) { if (obj is ModifiedTypeHandle) return _value == ((ModifiedTypeHandle)obj)._value; else if (obj is Handle) return _value == ((Handle)obj)._value; else return false; } // Equals public bool Equals(ModifiedTypeHandle handle) => _value == handle._value; public bool Equals(Handle handle) => _value == handle._value; public override int GetHashCode() => (int)_value; public static implicit operator Handle(ModifiedTypeHandle handle) => new Handle(handle._value); internal int Offset => (_value & 0x01FFFFFF); public ModifiedType GetModifiedType(MetadataReader reader) => new ModifiedType(reader, this); public bool IsNil => (_value & 0x01FFFFFF) == 0; [System.Diagnostics.Conditional("DEBUG")] internal void _Validate() { if ((HandleType)((uint)_value >> 25) != HandleType.ModifiedType) throw new ArgumentException(); } // _Validate #if DEBUG public override string ToString() => string.Format("{0:X8}", _value); #endif } // ModifiedTypeHandle #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct NamedArgument { private readonly MetadataReader _reader; private readonly NamedArgumentHandle _handle; internal NamedArgument(MetadataReader reader, NamedArgumentHandle handle) { _reader = reader; _handle = handle; uint offset = (uint)handle.Offset; NativeReader streamReader = reader._streamReader; offset = streamReader.Read(offset, out _flags); offset = streamReader.Read(offset, out _name); offset = streamReader.Read(offset, out _type); offset = streamReader.Read(offset, out _value); } public NamedArgumentHandle Handle => _handle; public NamedArgumentMemberKind Flags => _flags; private readonly NamedArgumentMemberKind _flags; public ConstantStringValueHandle Name => _name; private readonly ConstantStringValueHandle _name; /// One of: TypeDefinition, TypeReference, TypeSpecification public Handle Type => _type; private readonly Handle _type; /// One of: TypeDefinition, TypeReference, TypeSpecification, ConstantBooleanArray, ConstantBooleanValue, ConstantByteArray, ConstantByteValue, ConstantCharArray, ConstantCharValue, ConstantDoubleArray, ConstantDoubleValue, ConstantEnumArray, ConstantEnumValue, ConstantHandleArray, ConstantInt16Array, ConstantInt16Value, ConstantInt32Array, ConstantInt32Value, ConstantInt64Array, ConstantInt64Value, ConstantReferenceValue, ConstantSByteArray, ConstantSByteValue, ConstantSingleArray, ConstantSingleValue, ConstantStringArray, ConstantStringValue, ConstantUInt16Array, ConstantUInt16Value, ConstantUInt32Array, ConstantUInt32Value, ConstantUInt64Array, ConstantUInt64Value public Handle Value => _value; private readonly Handle _value; } // NamedArgument #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct NamedArgumentHandle { internal readonly int _value; internal NamedArgumentHandle(Handle handle) : this(handle._value) { } internal NamedArgumentHandle(int value) { HandleType hType = (HandleType)((uint)value >> 25); Debug.Assert(hType == HandleType.NamedArgument || hType == HandleType.Null); _value = (value & 0x01FFFFFF) | (((int)HandleType.NamedArgument) << 25); _Validate(); } public override bool Equals(object obj) { if (obj is NamedArgumentHandle) return _value == ((NamedArgumentHandle)obj)._value; else if (obj is Handle) return _value == ((Handle)obj)._value; else return false; } // Equals public bool Equals(NamedArgumentHandle handle) => _value == handle._value; public bool Equals(Handle handle) => _value == handle._value; public override int GetHashCode() => (int)_value; public static implicit operator Handle(NamedArgumentHandle handle) => new Handle(handle._value); internal int Offset => (_value & 0x01FFFFFF); public NamedArgument GetNamedArgument(MetadataReader reader) => new NamedArgument(reader, this); public bool IsNil => (_value & 0x01FFFFFF) == 0; [System.Diagnostics.Conditional("DEBUG")] internal void _Validate() { if ((HandleType)((uint)_value >> 25) != HandleType.NamedArgument) throw new ArgumentException(); } // _Validate #if DEBUG public override string ToString() => string.Format("{0:X8}", _value); #endif } // NamedArgumentHandle #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct NamespaceDefinition { private readonly MetadataReader _reader; private readonly NamespaceDefinitionHandle _handle; internal NamespaceDefinition(MetadataReader reader, NamespaceDefinitionHandle handle) { _reader = reader; _handle = handle; uint offset = (uint)handle.Offset; NativeReader streamReader = reader._streamReader; offset = streamReader.Read(offset, out _parentScopeOrNamespace); offset = streamReader.Read(offset, out _name); offset = streamReader.Read(offset, out _typeDefinitions); offset = streamReader.Read(offset, out _typeForwarders); offset = streamReader.Read(offset, out _namespaceDefinitions); } public NamespaceDefinitionHandle Handle => _handle; /// One of: NamespaceDefinition, ScopeDefinition public Handle ParentScopeOrNamespace => _parentScopeOrNamespace; private readonly Handle _parentScopeOrNamespace; public ConstantStringValueHandle Name => _name; private readonly ConstantStringValueHandle _name; public TypeDefinitionHandleCollection TypeDefinitions => _typeDefinitions; private readonly TypeDefinitionHandleCollection _typeDefinitions; public TypeForwarderHandleCollection TypeForwarders => _typeForwarders; private readonly TypeForwarderHandleCollection _typeForwarders; public NamespaceDefinitionHandleCollection NamespaceDefinitions => _namespaceDefinitions; private readonly NamespaceDefinitionHandleCollection _namespaceDefinitions; } // NamespaceDefinition #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct NamespaceDefinitionHandle { internal readonly int _value; internal NamespaceDefinitionHandle(Handle handle) : this(handle._value) { } internal NamespaceDefinitionHandle(int value) { HandleType hType = (HandleType)((uint)value >> 25); Debug.Assert(hType == HandleType.NamespaceDefinition || hType == HandleType.Null); _value = (value & 0x01FFFFFF) | (((int)HandleType.NamespaceDefinition) << 25); _Validate(); } public override bool Equals(object obj) { if (obj is NamespaceDefinitionHandle) return _value == ((NamespaceDefinitionHandle)obj)._value; else if (obj is Handle) return _value == ((Handle)obj)._value; else return false; } // Equals public bool Equals(NamespaceDefinitionHandle handle) => _value == handle._value; public bool Equals(Handle handle) => _value == handle._value; public override int GetHashCode() => (int)_value; public static implicit operator Handle(NamespaceDefinitionHandle handle) => new Handle(handle._value); internal int Offset => (_value & 0x01FFFFFF); public NamespaceDefinition GetNamespaceDefinition(MetadataReader reader) => new NamespaceDefinition(reader, this); public bool IsNil => (_value & 0x01FFFFFF) == 0; [System.Diagnostics.Conditional("DEBUG")] internal void _Validate() { if ((HandleType)((uint)_value >> 25) != HandleType.NamespaceDefinition) throw new ArgumentException(); } // _Validate #if DEBUG public override string ToString() => string.Format("{0:X8}", _value); #endif } // NamespaceDefinitionHandle #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct NamespaceReference { private readonly MetadataReader _reader; private readonly NamespaceReferenceHandle _handle; internal NamespaceReference(MetadataReader reader, NamespaceReferenceHandle handle) { _reader = reader; _handle = handle; uint offset = (uint)handle.Offset; NativeReader streamReader = reader._streamReader; offset = streamReader.Read(offset, out _parentScopeOrNamespace); offset = streamReader.Read(offset, out _name); } public NamespaceReferenceHandle Handle => _handle; /// One of: NamespaceReference, ScopeReference public Handle ParentScopeOrNamespace => _parentScopeOrNamespace; private readonly Handle _parentScopeOrNamespace; public ConstantStringValueHandle Name => _name; private readonly ConstantStringValueHandle _name; } // NamespaceReference #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct NamespaceReferenceHandle { internal readonly int _value; internal NamespaceReferenceHandle(Handle handle) : this(handle._value) { } internal NamespaceReferenceHandle(int value) { HandleType hType = (HandleType)((uint)value >> 25); Debug.Assert(hType == HandleType.NamespaceReference || hType == HandleType.Null); _value = (value & 0x01FFFFFF) | (((int)HandleType.NamespaceReference) << 25); _Validate(); } public override bool Equals(object obj) { if (obj is NamespaceReferenceHandle) return _value == ((NamespaceReferenceHandle)obj)._value; else if (obj is Handle) return _value == ((Handle)obj)._value; else return false; } // Equals public bool Equals(NamespaceReferenceHandle handle) => _value == handle._value; public bool Equals(Handle handle) => _value == handle._value; public override int GetHashCode() => (int)_value; public static implicit operator Handle(NamespaceReferenceHandle handle) => new Handle(handle._value); internal int Offset => (_value & 0x01FFFFFF); public NamespaceReference GetNamespaceReference(MetadataReader reader) => new NamespaceReference(reader, this); public bool IsNil => (_value & 0x01FFFFFF) == 0; [System.Diagnostics.Conditional("DEBUG")] internal void _Validate() { if ((HandleType)((uint)_value >> 25) != HandleType.NamespaceReference) throw new ArgumentException(); } // _Validate #if DEBUG public override string ToString() => string.Format("{0:X8}", _value); #endif } // NamespaceReferenceHandle #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct Parameter { private readonly MetadataReader _reader; private readonly ParameterHandle _handle; internal Parameter(MetadataReader reader, ParameterHandle handle) { _reader = reader; _handle = handle; uint offset = (uint)handle.Offset; NativeReader streamReader = reader._streamReader; offset = streamReader.Read(offset, out _flags); offset = streamReader.Read(offset, out _sequence); offset = streamReader.Read(offset, out _name); offset = streamReader.Read(offset, out _defaultValue); offset = streamReader.Read(offset, out _customAttributes); } public ParameterHandle Handle => _handle; public ParameterAttributes Flags => _flags; private readonly ParameterAttributes _flags; public ushort Sequence => _sequence; private readonly ushort _sequence; public ConstantStringValueHandle Name => _name; private readonly ConstantStringValueHandle _name; /// One of: TypeDefinition, TypeReference, TypeSpecification, ConstantBooleanArray, ConstantBooleanValue, ConstantByteArray, ConstantByteValue, ConstantCharArray, ConstantCharValue, ConstantDoubleArray, ConstantDoubleValue, ConstantEnumArray, ConstantEnumValue, ConstantHandleArray, ConstantInt16Array, ConstantInt16Value, ConstantInt32Array, ConstantInt32Value, ConstantInt64Array, ConstantInt64Value, ConstantReferenceValue, ConstantSByteArray, ConstantSByteValue, ConstantSingleArray, ConstantSingleValue, ConstantStringArray, ConstantStringValue, ConstantUInt16Array, ConstantUInt16Value, ConstantUInt32Array, ConstantUInt32Value, ConstantUInt64Array, ConstantUInt64Value public Handle DefaultValue => _defaultValue; private readonly Handle _defaultValue; public CustomAttributeHandleCollection CustomAttributes => _customAttributes; private readonly CustomAttributeHandleCollection _customAttributes; } // Parameter #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct ParameterHandle { internal readonly int _value; internal ParameterHandle(Handle handle) : this(handle._value) { } internal ParameterHandle(int value) { HandleType hType = (HandleType)((uint)value >> 25); Debug.Assert(hType == HandleType.Parameter || hType == HandleType.Null); _value = (value & 0x01FFFFFF) | (((int)HandleType.Parameter) << 25); _Validate(); } public override bool Equals(object obj) { if (obj is ParameterHandle) return _value == ((ParameterHandle)obj)._value; else if (obj is Handle) return _value == ((Handle)obj)._value; else return false; } // Equals public bool Equals(ParameterHandle handle) => _value == handle._value; public bool Equals(Handle handle) => _value == handle._value; public override int GetHashCode() => (int)_value; public static implicit operator Handle(ParameterHandle handle) => new Handle(handle._value); internal int Offset => (_value & 0x01FFFFFF); public Parameter GetParameter(MetadataReader reader) => new Parameter(reader, this); public bool IsNil => (_value & 0x01FFFFFF) == 0; [System.Diagnostics.Conditional("DEBUG")] internal void _Validate() { if ((HandleType)((uint)_value >> 25) != HandleType.Parameter) throw new ArgumentException(); } // _Validate #if DEBUG public override string ToString() => string.Format("{0:X8}", _value); #endif } // ParameterHandle #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct PointerSignature { private readonly MetadataReader _reader; private readonly PointerSignatureHandle _handle; internal PointerSignature(MetadataReader reader, PointerSignatureHandle handle) { _reader = reader; _handle = handle; uint offset = (uint)handle.Offset; NativeReader streamReader = reader._streamReader; offset = streamReader.Read(offset, out _type); } public PointerSignatureHandle Handle => _handle; /// One of: TypeDefinition, TypeReference, TypeSpecification, ModifiedType public Handle Type => _type; private readonly Handle _type; } // PointerSignature #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct PointerSignatureHandle { internal readonly int _value; internal PointerSignatureHandle(Handle handle) : this(handle._value) { } internal PointerSignatureHandle(int value) { HandleType hType = (HandleType)((uint)value >> 25); Debug.Assert(hType == HandleType.PointerSignature || hType == HandleType.Null); _value = (value & 0x01FFFFFF) | (((int)HandleType.PointerSignature) << 25); _Validate(); } public override bool Equals(object obj) { if (obj is PointerSignatureHandle) return _value == ((PointerSignatureHandle)obj)._value; else if (obj is Handle) return _value == ((Handle)obj)._value; else return false; } // Equals public bool Equals(PointerSignatureHandle handle) => _value == handle._value; public bool Equals(Handle handle) => _value == handle._value; public override int GetHashCode() => (int)_value; public static implicit operator Handle(PointerSignatureHandle handle) => new Handle(handle._value); internal int Offset => (_value & 0x01FFFFFF); public PointerSignature GetPointerSignature(MetadataReader reader) => new PointerSignature(reader, this); public bool IsNil => (_value & 0x01FFFFFF) == 0; [System.Diagnostics.Conditional("DEBUG")] internal void _Validate() { if ((HandleType)((uint)_value >> 25) != HandleType.PointerSignature) throw new ArgumentException(); } // _Validate #if DEBUG public override string ToString() => string.Format("{0:X8}", _value); #endif } // PointerSignatureHandle #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct Property { private readonly MetadataReader _reader; private readonly PropertyHandle _handle; internal Property(MetadataReader reader, PropertyHandle handle) { _reader = reader; _handle = handle; uint offset = (uint)handle.Offset; NativeReader streamReader = reader._streamReader; offset = streamReader.Read(offset, out _flags); offset = streamReader.Read(offset, out _name); offset = streamReader.Read(offset, out _signature); offset = streamReader.Read(offset, out _methodSemantics); offset = streamReader.Read(offset, out _defaultValue); offset = streamReader.Read(offset, out _customAttributes); } public PropertyHandle Handle => _handle; public PropertyAttributes Flags => _flags; private readonly PropertyAttributes _flags; public ConstantStringValueHandle Name => _name; private readonly ConstantStringValueHandle _name; public PropertySignatureHandle Signature => _signature; private readonly PropertySignatureHandle _signature; public MethodSemanticsHandleCollection MethodSemantics => _methodSemantics; private readonly MethodSemanticsHandleCollection _methodSemantics; /// One of: TypeDefinition, TypeReference, TypeSpecification, ConstantBooleanArray, ConstantBooleanValue, ConstantByteArray, ConstantByteValue, ConstantCharArray, ConstantCharValue, ConstantDoubleArray, ConstantDoubleValue, ConstantEnumArray, ConstantEnumValue, ConstantHandleArray, ConstantInt16Array, ConstantInt16Value, ConstantInt32Array, ConstantInt32Value, ConstantInt64Array, ConstantInt64Value, ConstantReferenceValue, ConstantSByteArray, ConstantSByteValue, ConstantSingleArray, ConstantSingleValue, ConstantStringArray, ConstantStringValue, ConstantUInt16Array, ConstantUInt16Value, ConstantUInt32Array, ConstantUInt32Value, ConstantUInt64Array, ConstantUInt64Value public Handle DefaultValue => _defaultValue; private readonly Handle _defaultValue; public CustomAttributeHandleCollection CustomAttributes => _customAttributes; private readonly CustomAttributeHandleCollection _customAttributes; } // Property #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct PropertyHandle { internal readonly int _value; internal PropertyHandle(Handle handle) : this(handle._value) { } internal PropertyHandle(int value) { HandleType hType = (HandleType)((uint)value >> 25); Debug.Assert(hType == HandleType.Property || hType == HandleType.Null); _value = (value & 0x01FFFFFF) | (((int)HandleType.Property) << 25); _Validate(); } public override bool Equals(object obj) { if (obj is PropertyHandle) return _value == ((PropertyHandle)obj)._value; else if (obj is Handle) return _value == ((Handle)obj)._value; else return false; } // Equals public bool Equals(PropertyHandle handle) => _value == handle._value; public bool Equals(Handle handle) => _value == handle._value; public override int GetHashCode() => (int)_value; public static implicit operator Handle(PropertyHandle handle) => new Handle(handle._value); internal int Offset => (_value & 0x01FFFFFF); public Property GetProperty(MetadataReader reader) => new Property(reader, this); public bool IsNil => (_value & 0x01FFFFFF) == 0; [System.Diagnostics.Conditional("DEBUG")] internal void _Validate() { if ((HandleType)((uint)_value >> 25) != HandleType.Property) throw new ArgumentException(); } // _Validate #if DEBUG public override string ToString() => string.Format("{0:X8}", _value); #endif } // PropertyHandle #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct PropertySignature { private readonly MetadataReader _reader; private readonly PropertySignatureHandle _handle; internal PropertySignature(MetadataReader reader, PropertySignatureHandle handle) { _reader = reader; _handle = handle; uint offset = (uint)handle.Offset; NativeReader streamReader = reader._streamReader; offset = streamReader.Read(offset, out _callingConvention); offset = streamReader.Read(offset, out _type); offset = streamReader.Read(offset, out _parameters); } public PropertySignatureHandle Handle => _handle; public CallingConventions CallingConvention => _callingConvention; private readonly CallingConventions _callingConvention; /// One of: TypeDefinition, TypeReference, TypeSpecification, ModifiedType public Handle Type => _type; private readonly Handle _type; /// One of: TypeDefinition, TypeReference, TypeSpecification, ModifiedType public HandleCollection Parameters => _parameters; private readonly HandleCollection _parameters; } // PropertySignature #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct PropertySignatureHandle { internal readonly int _value; internal PropertySignatureHandle(Handle handle) : this(handle._value) { } internal PropertySignatureHandle(int value) { HandleType hType = (HandleType)((uint)value >> 25); Debug.Assert(hType == HandleType.PropertySignature || hType == HandleType.Null); _value = (value & 0x01FFFFFF) | (((int)HandleType.PropertySignature) << 25); _Validate(); } public override bool Equals(object obj) { if (obj is PropertySignatureHandle) return _value == ((PropertySignatureHandle)obj)._value; else if (obj is Handle) return _value == ((Handle)obj)._value; else return false; } // Equals public bool Equals(PropertySignatureHandle handle) => _value == handle._value; public bool Equals(Handle handle) => _value == handle._value; public override int GetHashCode() => (int)_value; public static implicit operator Handle(PropertySignatureHandle handle) => new Handle(handle._value); internal int Offset => (_value & 0x01FFFFFF); public PropertySignature GetPropertySignature(MetadataReader reader) => new PropertySignature(reader, this); public bool IsNil => (_value & 0x01FFFFFF) == 0; [System.Diagnostics.Conditional("DEBUG")] internal void _Validate() { if ((HandleType)((uint)_value >> 25) != HandleType.PropertySignature) throw new ArgumentException(); } // _Validate #if DEBUG public override string ToString() => string.Format("{0:X8}", _value); #endif } // PropertySignatureHandle #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct QualifiedField { private readonly MetadataReader _reader; private readonly QualifiedFieldHandle _handle; internal QualifiedField(MetadataReader reader, QualifiedFieldHandle handle) { _reader = reader; _handle = handle; uint offset = (uint)handle.Offset; NativeReader streamReader = reader._streamReader; offset = streamReader.Read(offset, out _field); offset = streamReader.Read(offset, out _enclosingType); } public QualifiedFieldHandle Handle => _handle; public FieldHandle Field => _field; private readonly FieldHandle _field; public TypeDefinitionHandle EnclosingType => _enclosingType; private readonly TypeDefinitionHandle _enclosingType; } // QualifiedField #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct QualifiedFieldHandle { internal readonly int _value; internal QualifiedFieldHandle(Handle handle) : this(handle._value) { } internal QualifiedFieldHandle(int value) { HandleType hType = (HandleType)((uint)value >> 25); Debug.Assert(hType == HandleType.QualifiedField || hType == HandleType.Null); _value = (value & 0x01FFFFFF) | (((int)HandleType.QualifiedField) << 25); _Validate(); } public override bool Equals(object obj) { if (obj is QualifiedFieldHandle) return _value == ((QualifiedFieldHandle)obj)._value; else if (obj is Handle) return _value == ((Handle)obj)._value; else return false; } // Equals public bool Equals(QualifiedFieldHandle handle) => _value == handle._value; public bool Equals(Handle handle) => _value == handle._value; public override int GetHashCode() => (int)_value; public static implicit operator Handle(QualifiedFieldHandle handle) => new Handle(handle._value); internal int Offset => (_value & 0x01FFFFFF); public QualifiedField GetQualifiedField(MetadataReader reader) => new QualifiedField(reader, this); public bool IsNil => (_value & 0x01FFFFFF) == 0; [System.Diagnostics.Conditional("DEBUG")] internal void _Validate() { if ((HandleType)((uint)_value >> 25) != HandleType.QualifiedField) throw new ArgumentException(); } // _Validate #if DEBUG public override string ToString() => string.Format("{0:X8}", _value); #endif } // QualifiedFieldHandle #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct QualifiedMethod { private readonly MetadataReader _reader; private readonly QualifiedMethodHandle _handle; internal QualifiedMethod(MetadataReader reader, QualifiedMethodHandle handle) { _reader = reader; _handle = handle; uint offset = (uint)handle.Offset; NativeReader streamReader = reader._streamReader; offset = streamReader.Read(offset, out _method); offset = streamReader.Read(offset, out _enclosingType); } public QualifiedMethodHandle Handle => _handle; public MethodHandle Method => _method; private readonly MethodHandle _method; public TypeDefinitionHandle EnclosingType => _enclosingType; private readonly TypeDefinitionHandle _enclosingType; } // QualifiedMethod #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct QualifiedMethodHandle { internal readonly int _value; internal QualifiedMethodHandle(Handle handle) : this(handle._value) { } internal QualifiedMethodHandle(int value) { HandleType hType = (HandleType)((uint)value >> 25); Debug.Assert(hType == HandleType.QualifiedMethod || hType == HandleType.Null); _value = (value & 0x01FFFFFF) | (((int)HandleType.QualifiedMethod) << 25); _Validate(); } public override bool Equals(object obj) { if (obj is QualifiedMethodHandle) return _value == ((QualifiedMethodHandle)obj)._value; else if (obj is Handle) return _value == ((Handle)obj)._value; else return false; } // Equals public bool Equals(QualifiedMethodHandle handle) => _value == handle._value; public bool Equals(Handle handle) => _value == handle._value; public override int GetHashCode() => (int)_value; public static implicit operator Handle(QualifiedMethodHandle handle) => new Handle(handle._value); internal int Offset => (_value & 0x01FFFFFF); public QualifiedMethod GetQualifiedMethod(MetadataReader reader) => new QualifiedMethod(reader, this); public bool IsNil => (_value & 0x01FFFFFF) == 0; [System.Diagnostics.Conditional("DEBUG")] internal void _Validate() { if ((HandleType)((uint)_value >> 25) != HandleType.QualifiedMethod) throw new ArgumentException(); } // _Validate #if DEBUG public override string ToString() => string.Format("{0:X8}", _value); #endif } // QualifiedMethodHandle #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct SZArraySignature { private readonly MetadataReader _reader; private readonly SZArraySignatureHandle _handle; internal SZArraySignature(MetadataReader reader, SZArraySignatureHandle handle) { _reader = reader; _handle = handle; uint offset = (uint)handle.Offset; NativeReader streamReader = reader._streamReader; offset = streamReader.Read(offset, out _elementType); } public SZArraySignatureHandle Handle => _handle; /// One of: TypeDefinition, TypeReference, TypeSpecification, ModifiedType public Handle ElementType => _elementType; private readonly Handle _elementType; } // SZArraySignature #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct SZArraySignatureHandle { internal readonly int _value; internal SZArraySignatureHandle(Handle handle) : this(handle._value) { } internal SZArraySignatureHandle(int value) { HandleType hType = (HandleType)((uint)value >> 25); Debug.Assert(hType == HandleType.SZArraySignature || hType == HandleType.Null); _value = (value & 0x01FFFFFF) | (((int)HandleType.SZArraySignature) << 25); _Validate(); } public override bool Equals(object obj) { if (obj is SZArraySignatureHandle) return _value == ((SZArraySignatureHandle)obj)._value; else if (obj is Handle) return _value == ((Handle)obj)._value; else return false; } // Equals public bool Equals(SZArraySignatureHandle handle) => _value == handle._value; public bool Equals(Handle handle) => _value == handle._value; public override int GetHashCode() => (int)_value; public static implicit operator Handle(SZArraySignatureHandle handle) => new Handle(handle._value); internal int Offset => (_value & 0x01FFFFFF); public SZArraySignature GetSZArraySignature(MetadataReader reader) => new SZArraySignature(reader, this); public bool IsNil => (_value & 0x01FFFFFF) == 0; [System.Diagnostics.Conditional("DEBUG")] internal void _Validate() { if ((HandleType)((uint)_value >> 25) != HandleType.SZArraySignature) throw new ArgumentException(); } // _Validate #if DEBUG public override string ToString() => string.Format("{0:X8}", _value); #endif } // SZArraySignatureHandle #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct ScopeDefinition { private readonly MetadataReader _reader; private readonly ScopeDefinitionHandle _handle; internal ScopeDefinition(MetadataReader reader, ScopeDefinitionHandle handle) { _reader = reader; _handle = handle; uint offset = (uint)handle.Offset; NativeReader streamReader = reader._streamReader; offset = streamReader.Read(offset, out _flags); offset = streamReader.Read(offset, out _name); offset = streamReader.Read(offset, out _hashAlgorithm); offset = streamReader.Read(offset, out _majorVersion); offset = streamReader.Read(offset, out _minorVersion); offset = streamReader.Read(offset, out _buildNumber); offset = streamReader.Read(offset, out _revisionNumber); offset = streamReader.Read(offset, out _publicKey); offset = streamReader.Read(offset, out _culture); offset = streamReader.Read(offset, out _rootNamespaceDefinition); offset = streamReader.Read(offset, out _entryPoint); offset = streamReader.Read(offset, out _globalModuleType); offset = streamReader.Read(offset, out _customAttributes); offset = streamReader.Read(offset, out _moduleName); offset = streamReader.Read(offset, out _mvid); offset = streamReader.Read(offset, out _moduleCustomAttributes); } public ScopeDefinitionHandle Handle => _handle; public AssemblyFlags Flags => _flags; private readonly AssemblyFlags _flags; public ConstantStringValueHandle Name => _name; private readonly ConstantStringValueHandle _name; public AssemblyHashAlgorithm HashAlgorithm => _hashAlgorithm; private readonly AssemblyHashAlgorithm _hashAlgorithm; public ushort MajorVersion => _majorVersion; private readonly ushort _majorVersion; public ushort MinorVersion => _minorVersion; private readonly ushort _minorVersion; public ushort BuildNumber => _buildNumber; private readonly ushort _buildNumber; public ushort RevisionNumber => _revisionNumber; private readonly ushort _revisionNumber; public ByteCollection PublicKey => _publicKey; private readonly ByteCollection _publicKey; public ConstantStringValueHandle Culture => _culture; private readonly ConstantStringValueHandle _culture; public NamespaceDefinitionHandle RootNamespaceDefinition => _rootNamespaceDefinition; private readonly NamespaceDefinitionHandle _rootNamespaceDefinition; public QualifiedMethodHandle EntryPoint => _entryPoint; private readonly QualifiedMethodHandle _entryPoint; public TypeDefinitionHandle GlobalModuleType => _globalModuleType; private readonly TypeDefinitionHandle _globalModuleType; public CustomAttributeHandleCollection CustomAttributes => _customAttributes; private readonly CustomAttributeHandleCollection _customAttributes; public ConstantStringValueHandle ModuleName => _moduleName; private readonly ConstantStringValueHandle _moduleName; public ByteCollection Mvid => _mvid; private readonly ByteCollection _mvid; public CustomAttributeHandleCollection ModuleCustomAttributes => _moduleCustomAttributes; private readonly CustomAttributeHandleCollection _moduleCustomAttributes; } // ScopeDefinition #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct ScopeDefinitionHandle { internal readonly int _value; internal ScopeDefinitionHandle(Handle handle) : this(handle._value) { } internal ScopeDefinitionHandle(int value) { HandleType hType = (HandleType)((uint)value >> 25); Debug.Assert(hType == HandleType.ScopeDefinition || hType == HandleType.Null); _value = (value & 0x01FFFFFF) | (((int)HandleType.ScopeDefinition) << 25); _Validate(); } public override bool Equals(object obj) { if (obj is ScopeDefinitionHandle) return _value == ((ScopeDefinitionHandle)obj)._value; else if (obj is Handle) return _value == ((Handle)obj)._value; else return false; } // Equals public bool Equals(ScopeDefinitionHandle handle) => _value == handle._value; public bool Equals(Handle handle) => _value == handle._value; public override int GetHashCode() => (int)_value; public static implicit operator Handle(ScopeDefinitionHandle handle) => new Handle(handle._value); internal int Offset => (_value & 0x01FFFFFF); public ScopeDefinition GetScopeDefinition(MetadataReader reader) => new ScopeDefinition(reader, this); public bool IsNil => (_value & 0x01FFFFFF) == 0; [System.Diagnostics.Conditional("DEBUG")] internal void _Validate() { if ((HandleType)((uint)_value >> 25) != HandleType.ScopeDefinition) throw new ArgumentException(); } // _Validate #if DEBUG public override string ToString() => string.Format("{0:X8}", _value); #endif } // ScopeDefinitionHandle #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct ScopeReference { private readonly MetadataReader _reader; private readonly ScopeReferenceHandle _handle; internal ScopeReference(MetadataReader reader, ScopeReferenceHandle handle) { _reader = reader; _handle = handle; uint offset = (uint)handle.Offset; NativeReader streamReader = reader._streamReader; offset = streamReader.Read(offset, out _flags); offset = streamReader.Read(offset, out _name); offset = streamReader.Read(offset, out _majorVersion); offset = streamReader.Read(offset, out _minorVersion); offset = streamReader.Read(offset, out _buildNumber); offset = streamReader.Read(offset, out _revisionNumber); offset = streamReader.Read(offset, out _publicKeyOrToken); offset = streamReader.Read(offset, out _culture); } public ScopeReferenceHandle Handle => _handle; public AssemblyFlags Flags => _flags; private readonly AssemblyFlags _flags; public ConstantStringValueHandle Name => _name; private readonly ConstantStringValueHandle _name; public ushort MajorVersion => _majorVersion; private readonly ushort _majorVersion; public ushort MinorVersion => _minorVersion; private readonly ushort _minorVersion; public ushort BuildNumber => _buildNumber; private readonly ushort _buildNumber; public ushort RevisionNumber => _revisionNumber; private readonly ushort _revisionNumber; public ByteCollection PublicKeyOrToken => _publicKeyOrToken; private readonly ByteCollection _publicKeyOrToken; public ConstantStringValueHandle Culture => _culture; private readonly ConstantStringValueHandle _culture; } // ScopeReference #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct ScopeReferenceHandle { internal readonly int _value; internal ScopeReferenceHandle(Handle handle) : this(handle._value) { } internal ScopeReferenceHandle(int value) { HandleType hType = (HandleType)((uint)value >> 25); Debug.Assert(hType == HandleType.ScopeReference || hType == HandleType.Null); _value = (value & 0x01FFFFFF) | (((int)HandleType.ScopeReference) << 25); _Validate(); } public override bool Equals(object obj) { if (obj is ScopeReferenceHandle) return _value == ((ScopeReferenceHandle)obj)._value; else if (obj is Handle) return _value == ((Handle)obj)._value; else return false; } // Equals public bool Equals(ScopeReferenceHandle handle) => _value == handle._value; public bool Equals(Handle handle) => _value == handle._value; public override int GetHashCode() => (int)_value; public static implicit operator Handle(ScopeReferenceHandle handle) => new Handle(handle._value); internal int Offset => (_value & 0x01FFFFFF); public ScopeReference GetScopeReference(MetadataReader reader) => new ScopeReference(reader, this); public bool IsNil => (_value & 0x01FFFFFF) == 0; [System.Diagnostics.Conditional("DEBUG")] internal void _Validate() { if ((HandleType)((uint)_value >> 25) != HandleType.ScopeReference) throw new ArgumentException(); } // _Validate #if DEBUG public override string ToString() => string.Format("{0:X8}", _value); #endif } // ScopeReferenceHandle #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct TypeDefinition { private readonly MetadataReader _reader; private readonly TypeDefinitionHandle _handle; internal TypeDefinition(MetadataReader reader, TypeDefinitionHandle handle) { _reader = reader; _handle = handle; uint offset = (uint)handle.Offset; NativeReader streamReader = reader._streamReader; offset = streamReader.Read(offset, out _flags); offset = streamReader.Read(offset, out _baseType); offset = streamReader.Read(offset, out _namespaceDefinition); offset = streamReader.Read(offset, out _name); offset = streamReader.Read(offset, out _size); offset = streamReader.Read(offset, out _packingSize); offset = streamReader.Read(offset, out _enclosingType); offset = streamReader.Read(offset, out _nestedTypes); offset = streamReader.Read(offset, out _methods); offset = streamReader.Read(offset, out _fields); offset = streamReader.Read(offset, out _properties); offset = streamReader.Read(offset, out _events); offset = streamReader.Read(offset, out _genericParameters); offset = streamReader.Read(offset, out _interfaces); offset = streamReader.Read(offset, out _customAttributes); } public TypeDefinitionHandle Handle => _handle; public TypeAttributes Flags => _flags; private readonly TypeAttributes _flags; /// One of: TypeDefinition, TypeReference, TypeSpecification public Handle BaseType => _baseType; private readonly Handle _baseType; public NamespaceDefinitionHandle NamespaceDefinition => _namespaceDefinition; private readonly NamespaceDefinitionHandle _namespaceDefinition; public ConstantStringValueHandle Name => _name; private readonly ConstantStringValueHandle _name; public uint Size => _size; private readonly uint _size; public ushort PackingSize => _packingSize; private readonly ushort _packingSize; public TypeDefinitionHandle EnclosingType => _enclosingType; private readonly TypeDefinitionHandle _enclosingType; public TypeDefinitionHandleCollection NestedTypes => _nestedTypes; private readonly TypeDefinitionHandleCollection _nestedTypes; public MethodHandleCollection Methods => _methods; private readonly MethodHandleCollection _methods; public FieldHandleCollection Fields => _fields; private readonly FieldHandleCollection _fields; public PropertyHandleCollection Properties => _properties; private readonly PropertyHandleCollection _properties; public EventHandleCollection Events => _events; private readonly EventHandleCollection _events; public GenericParameterHandleCollection GenericParameters => _genericParameters; private readonly GenericParameterHandleCollection _genericParameters; /// One of: TypeDefinition, TypeReference, TypeSpecification public HandleCollection Interfaces => _interfaces; private readonly HandleCollection _interfaces; public CustomAttributeHandleCollection CustomAttributes => _customAttributes; private readonly CustomAttributeHandleCollection _customAttributes; } // TypeDefinition #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct TypeDefinitionHandle { internal readonly int _value; internal TypeDefinitionHandle(Handle handle) : this(handle._value) { } internal TypeDefinitionHandle(int value) { HandleType hType = (HandleType)((uint)value >> 25); Debug.Assert(hType == HandleType.TypeDefinition || hType == HandleType.Null); _value = (value & 0x01FFFFFF) | (((int)HandleType.TypeDefinition) << 25); _Validate(); } public override bool Equals(object obj) { if (obj is TypeDefinitionHandle) return _value == ((TypeDefinitionHandle)obj)._value; else if (obj is Handle) return _value == ((Handle)obj)._value; else return false; } // Equals public bool Equals(TypeDefinitionHandle handle) => _value == handle._value; public bool Equals(Handle handle) => _value == handle._value; public override int GetHashCode() => (int)_value; public static implicit operator Handle(TypeDefinitionHandle handle) => new Handle(handle._value); internal int Offset => (_value & 0x01FFFFFF); public TypeDefinition GetTypeDefinition(MetadataReader reader) => new TypeDefinition(reader, this); public bool IsNil => (_value & 0x01FFFFFF) == 0; [System.Diagnostics.Conditional("DEBUG")] internal void _Validate() { if ((HandleType)((uint)_value >> 25) != HandleType.TypeDefinition) throw new ArgumentException(); } // _Validate #if DEBUG public override string ToString() => string.Format("{0:X8}", _value); #endif } // TypeDefinitionHandle #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct TypeForwarder { private readonly MetadataReader _reader; private readonly TypeForwarderHandle _handle; internal TypeForwarder(MetadataReader reader, TypeForwarderHandle handle) { _reader = reader; _handle = handle; uint offset = (uint)handle.Offset; NativeReader streamReader = reader._streamReader; offset = streamReader.Read(offset, out _scope); offset = streamReader.Read(offset, out _name); offset = streamReader.Read(offset, out _nestedTypes); } public TypeForwarderHandle Handle => _handle; public ScopeReferenceHandle Scope => _scope; private readonly ScopeReferenceHandle _scope; public ConstantStringValueHandle Name => _name; private readonly ConstantStringValueHandle _name; public TypeForwarderHandleCollection NestedTypes => _nestedTypes; private readonly TypeForwarderHandleCollection _nestedTypes; } // TypeForwarder #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct TypeForwarderHandle { internal readonly int _value; internal TypeForwarderHandle(Handle handle) : this(handle._value) { } internal TypeForwarderHandle(int value) { HandleType hType = (HandleType)((uint)value >> 25); Debug.Assert(hType == HandleType.TypeForwarder || hType == HandleType.Null); _value = (value & 0x01FFFFFF) | (((int)HandleType.TypeForwarder) << 25); _Validate(); } public override bool Equals(object obj) { if (obj is TypeForwarderHandle) return _value == ((TypeForwarderHandle)obj)._value; else if (obj is Handle) return _value == ((Handle)obj)._value; else return false; } // Equals public bool Equals(TypeForwarderHandle handle) => _value == handle._value; public bool Equals(Handle handle) => _value == handle._value; public override int GetHashCode() => (int)_value; public static implicit operator Handle(TypeForwarderHandle handle) => new Handle(handle._value); internal int Offset => (_value & 0x01FFFFFF); public TypeForwarder GetTypeForwarder(MetadataReader reader) => new TypeForwarder(reader, this); public bool IsNil => (_value & 0x01FFFFFF) == 0; [System.Diagnostics.Conditional("DEBUG")] internal void _Validate() { if ((HandleType)((uint)_value >> 25) != HandleType.TypeForwarder) throw new ArgumentException(); } // _Validate #if DEBUG public override string ToString() => string.Format("{0:X8}", _value); #endif } // TypeForwarderHandle #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct TypeInstantiationSignature { private readonly MetadataReader _reader; private readonly TypeInstantiationSignatureHandle _handle; internal TypeInstantiationSignature(MetadataReader reader, TypeInstantiationSignatureHandle handle) { _reader = reader; _handle = handle; uint offset = (uint)handle.Offset; NativeReader streamReader = reader._streamReader; offset = streamReader.Read(offset, out _genericType); offset = streamReader.Read(offset, out _genericTypeArguments); } public TypeInstantiationSignatureHandle Handle => _handle; /// One of: TypeDefinition, TypeReference, TypeSpecification public Handle GenericType => _genericType; private readonly Handle _genericType; /// One of: TypeDefinition, TypeReference, TypeSpecification, ModifiedType public HandleCollection GenericTypeArguments => _genericTypeArguments; private readonly HandleCollection _genericTypeArguments; } // TypeInstantiationSignature #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct TypeInstantiationSignatureHandle { internal readonly int _value; internal TypeInstantiationSignatureHandle(Handle handle) : this(handle._value) { } internal TypeInstantiationSignatureHandle(int value) { HandleType hType = (HandleType)((uint)value >> 25); Debug.Assert(hType == HandleType.TypeInstantiationSignature || hType == HandleType.Null); _value = (value & 0x01FFFFFF) | (((int)HandleType.TypeInstantiationSignature) << 25); _Validate(); } public override bool Equals(object obj) { if (obj is TypeInstantiationSignatureHandle) return _value == ((TypeInstantiationSignatureHandle)obj)._value; else if (obj is Handle) return _value == ((Handle)obj)._value; else return false; } // Equals public bool Equals(TypeInstantiationSignatureHandle handle) => _value == handle._value; public bool Equals(Handle handle) => _value == handle._value; public override int GetHashCode() => (int)_value; public static implicit operator Handle(TypeInstantiationSignatureHandle handle) => new Handle(handle._value); internal int Offset => (_value & 0x01FFFFFF); public TypeInstantiationSignature GetTypeInstantiationSignature(MetadataReader reader) => new TypeInstantiationSignature(reader, this); public bool IsNil => (_value & 0x01FFFFFF) == 0; [System.Diagnostics.Conditional("DEBUG")] internal void _Validate() { if ((HandleType)((uint)_value >> 25) != HandleType.TypeInstantiationSignature) throw new ArgumentException(); } // _Validate #if DEBUG public override string ToString() => string.Format("{0:X8}", _value); #endif } // TypeInstantiationSignatureHandle #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct TypeReference { private readonly MetadataReader _reader; private readonly TypeReferenceHandle _handle; internal TypeReference(MetadataReader reader, TypeReferenceHandle handle) { _reader = reader; _handle = handle; uint offset = (uint)handle.Offset; NativeReader streamReader = reader._streamReader; offset = streamReader.Read(offset, out _parentNamespaceOrType); offset = streamReader.Read(offset, out _typeName); } public TypeReferenceHandle Handle => _handle; /// One of: NamespaceReference, TypeReference public Handle ParentNamespaceOrType => _parentNamespaceOrType; private readonly Handle _parentNamespaceOrType; public ConstantStringValueHandle TypeName => _typeName; private readonly ConstantStringValueHandle _typeName; } // TypeReference #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct TypeReferenceHandle { internal readonly int _value; internal TypeReferenceHandle(Handle handle) : this(handle._value) { } internal TypeReferenceHandle(int value) { HandleType hType = (HandleType)((uint)value >> 25); Debug.Assert(hType == HandleType.TypeReference || hType == HandleType.Null); _value = (value & 0x01FFFFFF) | (((int)HandleType.TypeReference) << 25); _Validate(); } public override bool Equals(object obj) { if (obj is TypeReferenceHandle) return _value == ((TypeReferenceHandle)obj)._value; else if (obj is Handle) return _value == ((Handle)obj)._value; else return false; } // Equals public bool Equals(TypeReferenceHandle handle) => _value == handle._value; public bool Equals(Handle handle) => _value == handle._value; public override int GetHashCode() => (int)_value; public static implicit operator Handle(TypeReferenceHandle handle) => new Handle(handle._value); internal int Offset => (_value & 0x01FFFFFF); public TypeReference GetTypeReference(MetadataReader reader) => new TypeReference(reader, this); public bool IsNil => (_value & 0x01FFFFFF) == 0; [System.Diagnostics.Conditional("DEBUG")] internal void _Validate() { if ((HandleType)((uint)_value >> 25) != HandleType.TypeReference) throw new ArgumentException(); } // _Validate #if DEBUG public override string ToString() => string.Format("{0:X8}", _value); #endif } // TypeReferenceHandle #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct TypeSpecification { private readonly MetadataReader _reader; private readonly TypeSpecificationHandle _handle; internal TypeSpecification(MetadataReader reader, TypeSpecificationHandle handle) { _reader = reader; _handle = handle; uint offset = (uint)handle.Offset; NativeReader streamReader = reader._streamReader; offset = streamReader.Read(offset, out _signature); } public TypeSpecificationHandle Handle => _handle; /// One of: TypeDefinition, TypeReference, TypeInstantiationSignature, SZArraySignature, ArraySignature, PointerSignature, FunctionPointerSignature, ByReferenceSignature, TypeVariableSignature, MethodTypeVariableSignature public Handle Signature => _signature; private readonly Handle _signature; } // TypeSpecification #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct TypeSpecificationHandle { internal readonly int _value; internal TypeSpecificationHandle(Handle handle) : this(handle._value) { } internal TypeSpecificationHandle(int value) { HandleType hType = (HandleType)((uint)value >> 25); Debug.Assert(hType == HandleType.TypeSpecification || hType == HandleType.Null); _value = (value & 0x01FFFFFF) | (((int)HandleType.TypeSpecification) << 25); _Validate(); } public override bool Equals(object obj) { if (obj is TypeSpecificationHandle) return _value == ((TypeSpecificationHandle)obj)._value; else if (obj is Handle) return _value == ((Handle)obj)._value; else return false; } // Equals public bool Equals(TypeSpecificationHandle handle) => _value == handle._value; public bool Equals(Handle handle) => _value == handle._value; public override int GetHashCode() => (int)_value; public static implicit operator Handle(TypeSpecificationHandle handle) => new Handle(handle._value); internal int Offset => (_value & 0x01FFFFFF); public TypeSpecification GetTypeSpecification(MetadataReader reader) => new TypeSpecification(reader, this); public bool IsNil => (_value & 0x01FFFFFF) == 0; [System.Diagnostics.Conditional("DEBUG")] internal void _Validate() { if ((HandleType)((uint)_value >> 25) != HandleType.TypeSpecification) throw new ArgumentException(); } // _Validate #if DEBUG public override string ToString() => string.Format("{0:X8}", _value); #endif } // TypeSpecificationHandle #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct TypeVariableSignature { private readonly MetadataReader _reader; private readonly TypeVariableSignatureHandle _handle; internal TypeVariableSignature(MetadataReader reader, TypeVariableSignatureHandle handle) { _reader = reader; _handle = handle; uint offset = (uint)handle.Offset; NativeReader streamReader = reader._streamReader; offset = streamReader.Read(offset, out _number); } public TypeVariableSignatureHandle Handle => _handle; public int Number => _number; private readonly int _number; } // TypeVariableSignature #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct TypeVariableSignatureHandle { internal readonly int _value; internal TypeVariableSignatureHandle(Handle handle) : this(handle._value) { } internal TypeVariableSignatureHandle(int value) { HandleType hType = (HandleType)((uint)value >> 25); Debug.Assert(hType == HandleType.TypeVariableSignature || hType == HandleType.Null); _value = (value & 0x01FFFFFF) | (((int)HandleType.TypeVariableSignature) << 25); _Validate(); } public override bool Equals(object obj) { if (obj is TypeVariableSignatureHandle) return _value == ((TypeVariableSignatureHandle)obj)._value; else if (obj is Handle) return _value == ((Handle)obj)._value; else return false; } // Equals public bool Equals(TypeVariableSignatureHandle handle) => _value == handle._value; public bool Equals(Handle handle) => _value == handle._value; public override int GetHashCode() => (int)_value; public static implicit operator Handle(TypeVariableSignatureHandle handle) => new Handle(handle._value); internal int Offset => (_value & 0x01FFFFFF); public TypeVariableSignature GetTypeVariableSignature(MetadataReader reader) => new TypeVariableSignature(reader, this); public bool IsNil => (_value & 0x01FFFFFF) == 0; [System.Diagnostics.Conditional("DEBUG")] internal void _Validate() { if ((HandleType)((uint)_value >> 25) != HandleType.TypeVariableSignature) throw new ArgumentException(); } // _Validate #if DEBUG public override string ToString() => string.Format("{0:X8}", _value); #endif } // TypeVariableSignatureHandle #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct NamedArgumentHandleCollection { private readonly NativeReader _reader; private readonly uint _offset; internal NamedArgumentHandleCollection(NativeReader reader, uint offset) { _offset = offset; _reader = reader; } public int Count { get { uint count; _reader.DecodeUnsigned(_offset, out count); return (int)count; } } // Count public Enumerator GetEnumerator() { return new Enumerator(_reader, _offset); } // GetEnumerator #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public struct Enumerator { private readonly NativeReader _reader; private uint _offset; private uint _remaining; private NamedArgumentHandle _current; internal Enumerator(NativeReader reader, uint offset) { _reader = reader; _offset = reader.DecodeUnsigned(offset, out _remaining); _current = default(NamedArgumentHandle); } public NamedArgumentHandle Current { get { return _current; } } // Current public bool MoveNext() { if (_remaining == 0) return false; _remaining--; _offset = _reader.Read(_offset, out _current); return true; } // MoveNext public void Dispose() { } // Dispose } // Enumerator } // NamedArgumentHandleCollection #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct MethodSemanticsHandleCollection { private readonly NativeReader _reader; private readonly uint _offset; internal MethodSemanticsHandleCollection(NativeReader reader, uint offset) { _offset = offset; _reader = reader; } public int Count { get { uint count; _reader.DecodeUnsigned(_offset, out count); return (int)count; } } // Count public Enumerator GetEnumerator() { return new Enumerator(_reader, _offset); } // GetEnumerator #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public struct Enumerator { private readonly NativeReader _reader; private uint _offset; private uint _remaining; private MethodSemanticsHandle _current; internal Enumerator(NativeReader reader, uint offset) { _reader = reader; _offset = reader.DecodeUnsigned(offset, out _remaining); _current = default(MethodSemanticsHandle); } public MethodSemanticsHandle Current { get { return _current; } } // Current public bool MoveNext() { if (_remaining == 0) return false; _remaining--; _offset = _reader.Read(_offset, out _current); return true; } // MoveNext public void Dispose() { } // Dispose } // Enumerator } // MethodSemanticsHandleCollection #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct CustomAttributeHandleCollection { private readonly NativeReader _reader; private readonly uint _offset; internal CustomAttributeHandleCollection(NativeReader reader, uint offset) { _offset = offset; _reader = reader; } public int Count { get { uint count; _reader.DecodeUnsigned(_offset, out count); return (int)count; } } // Count public Enumerator GetEnumerator() { return new Enumerator(_reader, _offset); } // GetEnumerator #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public struct Enumerator { private readonly NativeReader _reader; private uint _offset; private uint _remaining; private CustomAttributeHandle _current; internal Enumerator(NativeReader reader, uint offset) { _reader = reader; _offset = reader.DecodeUnsigned(offset, out _remaining); _current = default(CustomAttributeHandle); } public CustomAttributeHandle Current { get { return _current; } } // Current public bool MoveNext() { if (_remaining == 0) return false; _remaining--; _offset = _reader.Read(_offset, out _current); return true; } // MoveNext public void Dispose() { } // Dispose } // Enumerator } // CustomAttributeHandleCollection #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct ParameterHandleCollection { private readonly NativeReader _reader; private readonly uint _offset; internal ParameterHandleCollection(NativeReader reader, uint offset) { _offset = offset; _reader = reader; } public int Count { get { uint count; _reader.DecodeUnsigned(_offset, out count); return (int)count; } } // Count public Enumerator GetEnumerator() { return new Enumerator(_reader, _offset); } // GetEnumerator #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public struct Enumerator { private readonly NativeReader _reader; private uint _offset; private uint _remaining; private ParameterHandle _current; internal Enumerator(NativeReader reader, uint offset) { _reader = reader; _offset = reader.DecodeUnsigned(offset, out _remaining); _current = default(ParameterHandle); } public ParameterHandle Current { get { return _current; } } // Current public bool MoveNext() { if (_remaining == 0) return false; _remaining--; _offset = _reader.Read(_offset, out _current); return true; } // MoveNext public void Dispose() { } // Dispose } // Enumerator } // ParameterHandleCollection #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct GenericParameterHandleCollection { private readonly NativeReader _reader; private readonly uint _offset; internal GenericParameterHandleCollection(NativeReader reader, uint offset) { _offset = offset; _reader = reader; } public int Count { get { uint count; _reader.DecodeUnsigned(_offset, out count); return (int)count; } } // Count public Enumerator GetEnumerator() { return new Enumerator(_reader, _offset); } // GetEnumerator #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public struct Enumerator { private readonly NativeReader _reader; private uint _offset; private uint _remaining; private GenericParameterHandle _current; internal Enumerator(NativeReader reader, uint offset) { _reader = reader; _offset = reader.DecodeUnsigned(offset, out _remaining); _current = default(GenericParameterHandle); } public GenericParameterHandle Current { get { return _current; } } // Current public bool MoveNext() { if (_remaining == 0) return false; _remaining--; _offset = _reader.Read(_offset, out _current); return true; } // MoveNext public void Dispose() { } // Dispose } // Enumerator } // GenericParameterHandleCollection #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct TypeDefinitionHandleCollection { private readonly NativeReader _reader; private readonly uint _offset; internal TypeDefinitionHandleCollection(NativeReader reader, uint offset) { _offset = offset; _reader = reader; } public int Count { get { uint count; _reader.DecodeUnsigned(_offset, out count); return (int)count; } } // Count public Enumerator GetEnumerator() { return new Enumerator(_reader, _offset); } // GetEnumerator #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public struct Enumerator { private readonly NativeReader _reader; private uint _offset; private uint _remaining; private TypeDefinitionHandle _current; internal Enumerator(NativeReader reader, uint offset) { _reader = reader; _offset = reader.DecodeUnsigned(offset, out _remaining); _current = default(TypeDefinitionHandle); } public TypeDefinitionHandle Current { get { return _current; } } // Current public bool MoveNext() { if (_remaining == 0) return false; _remaining--; _offset = _reader.Read(_offset, out _current); return true; } // MoveNext public void Dispose() { } // Dispose } // Enumerator } // TypeDefinitionHandleCollection #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct TypeForwarderHandleCollection { private readonly NativeReader _reader; private readonly uint _offset; internal TypeForwarderHandleCollection(NativeReader reader, uint offset) { _offset = offset; _reader = reader; } public int Count { get { uint count; _reader.DecodeUnsigned(_offset, out count); return (int)count; } } // Count public Enumerator GetEnumerator() { return new Enumerator(_reader, _offset); } // GetEnumerator #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public struct Enumerator { private readonly NativeReader _reader; private uint _offset; private uint _remaining; private TypeForwarderHandle _current; internal Enumerator(NativeReader reader, uint offset) { _reader = reader; _offset = reader.DecodeUnsigned(offset, out _remaining); _current = default(TypeForwarderHandle); } public TypeForwarderHandle Current { get { return _current; } } // Current public bool MoveNext() { if (_remaining == 0) return false; _remaining--; _offset = _reader.Read(_offset, out _current); return true; } // MoveNext public void Dispose() { } // Dispose } // Enumerator } // TypeForwarderHandleCollection #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct NamespaceDefinitionHandleCollection { private readonly NativeReader _reader; private readonly uint _offset; internal NamespaceDefinitionHandleCollection(NativeReader reader, uint offset) { _offset = offset; _reader = reader; } public int Count { get { uint count; _reader.DecodeUnsigned(_offset, out count); return (int)count; } } // Count public Enumerator GetEnumerator() { return new Enumerator(_reader, _offset); } // GetEnumerator #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public struct Enumerator { private readonly NativeReader _reader; private uint _offset; private uint _remaining; private NamespaceDefinitionHandle _current; internal Enumerator(NativeReader reader, uint offset) { _reader = reader; _offset = reader.DecodeUnsigned(offset, out _remaining); _current = default(NamespaceDefinitionHandle); } public NamespaceDefinitionHandle Current { get { return _current; } } // Current public bool MoveNext() { if (_remaining == 0) return false; _remaining--; _offset = _reader.Read(_offset, out _current); return true; } // MoveNext public void Dispose() { } // Dispose } // Enumerator } // NamespaceDefinitionHandleCollection #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct MethodHandleCollection { private readonly NativeReader _reader; private readonly uint _offset; internal MethodHandleCollection(NativeReader reader, uint offset) { _offset = offset; _reader = reader; } public int Count { get { uint count; _reader.DecodeUnsigned(_offset, out count); return (int)count; } } // Count public Enumerator GetEnumerator() { return new Enumerator(_reader, _offset); } // GetEnumerator #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public struct Enumerator { private readonly NativeReader _reader; private uint _offset; private uint _remaining; private MethodHandle _current; internal Enumerator(NativeReader reader, uint offset) { _reader = reader; _offset = reader.DecodeUnsigned(offset, out _remaining); _current = default(MethodHandle); } public MethodHandle Current { get { return _current; } } // Current public bool MoveNext() { if (_remaining == 0) return false; _remaining--; _offset = _reader.Read(_offset, out _current); return true; } // MoveNext public void Dispose() { } // Dispose } // Enumerator } // MethodHandleCollection #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct FieldHandleCollection { private readonly NativeReader _reader; private readonly uint _offset; internal FieldHandleCollection(NativeReader reader, uint offset) { _offset = offset; _reader = reader; } public int Count { get { uint count; _reader.DecodeUnsigned(_offset, out count); return (int)count; } } // Count public Enumerator GetEnumerator() { return new Enumerator(_reader, _offset); } // GetEnumerator #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public struct Enumerator { private readonly NativeReader _reader; private uint _offset; private uint _remaining; private FieldHandle _current; internal Enumerator(NativeReader reader, uint offset) { _reader = reader; _offset = reader.DecodeUnsigned(offset, out _remaining); _current = default(FieldHandle); } public FieldHandle Current { get { return _current; } } // Current public bool MoveNext() { if (_remaining == 0) return false; _remaining--; _offset = _reader.Read(_offset, out _current); return true; } // MoveNext public void Dispose() { } // Dispose } // Enumerator } // FieldHandleCollection #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct PropertyHandleCollection { private readonly NativeReader _reader; private readonly uint _offset; internal PropertyHandleCollection(NativeReader reader, uint offset) { _offset = offset; _reader = reader; } public int Count { get { uint count; _reader.DecodeUnsigned(_offset, out count); return (int)count; } } // Count public Enumerator GetEnumerator() { return new Enumerator(_reader, _offset); } // GetEnumerator #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public struct Enumerator { private readonly NativeReader _reader; private uint _offset; private uint _remaining; private PropertyHandle _current; internal Enumerator(NativeReader reader, uint offset) { _reader = reader; _offset = reader.DecodeUnsigned(offset, out _remaining); _current = default(PropertyHandle); } public PropertyHandle Current { get { return _current; } } // Current public bool MoveNext() { if (_remaining == 0) return false; _remaining--; _offset = _reader.Read(_offset, out _current); return true; } // MoveNext public void Dispose() { } // Dispose } // Enumerator } // PropertyHandleCollection #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct EventHandleCollection { private readonly NativeReader _reader; private readonly uint _offset; internal EventHandleCollection(NativeReader reader, uint offset) { _offset = offset; _reader = reader; } public int Count { get { uint count; _reader.DecodeUnsigned(_offset, out count); return (int)count; } } // Count public Enumerator GetEnumerator() { return new Enumerator(_reader, _offset); } // GetEnumerator #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public struct Enumerator { private readonly NativeReader _reader; private uint _offset; private uint _remaining; private EventHandle _current; internal Enumerator(NativeReader reader, uint offset) { _reader = reader; _offset = reader.DecodeUnsigned(offset, out _remaining); _current = default(EventHandle); } public EventHandle Current { get { return _current; } } // Current public bool MoveNext() { if (_remaining == 0) return false; _remaining--; _offset = _reader.Read(_offset, out _current); return true; } // MoveNext public void Dispose() { } // Dispose } // Enumerator } // EventHandleCollection #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct ScopeDefinitionHandleCollection { private readonly NativeReader _reader; private readonly uint _offset; internal ScopeDefinitionHandleCollection(NativeReader reader, uint offset) { _offset = offset; _reader = reader; } public int Count { get { uint count; _reader.DecodeUnsigned(_offset, out count); return (int)count; } } // Count public Enumerator GetEnumerator() { return new Enumerator(_reader, _offset); } // GetEnumerator #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public struct Enumerator { private readonly NativeReader _reader; private uint _offset; private uint _remaining; private ScopeDefinitionHandle _current; internal Enumerator(NativeReader reader, uint offset) { _reader = reader; _offset = reader.DecodeUnsigned(offset, out _remaining); _current = default(ScopeDefinitionHandle); } public ScopeDefinitionHandle Current { get { return _current; } } // Current public bool MoveNext() { if (_remaining == 0) return false; _remaining--; _offset = _reader.Read(_offset, out _current); return true; } // MoveNext public void Dispose() { } // Dispose } // Enumerator } // ScopeDefinitionHandleCollection #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct BooleanCollection { private readonly NativeReader _reader; private readonly uint _offset; internal BooleanCollection(NativeReader reader, uint offset) { _offset = offset; _reader = reader; } public int Count { get { uint count; _reader.DecodeUnsigned(_offset, out count); return (int)count; } } // Count public Enumerator GetEnumerator() { return new Enumerator(_reader, _offset); } // GetEnumerator #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public struct Enumerator { private readonly NativeReader _reader; private uint _offset; private uint _remaining; private bool _current; internal Enumerator(NativeReader reader, uint offset) { _reader = reader; _offset = reader.DecodeUnsigned(offset, out _remaining); _current = default(bool); } public bool Current { get { return _current; } } // Current public bool MoveNext() { if (_remaining == 0) return false; _remaining--; _offset = _reader.Read(_offset, out _current); return true; } // MoveNext public void Dispose() { } // Dispose } // Enumerator } // BooleanCollection #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct CharCollection { private readonly NativeReader _reader; private readonly uint _offset; internal CharCollection(NativeReader reader, uint offset) { _offset = offset; _reader = reader; } public int Count { get { uint count; _reader.DecodeUnsigned(_offset, out count); return (int)count; } } // Count public Enumerator GetEnumerator() { return new Enumerator(_reader, _offset); } // GetEnumerator #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public struct Enumerator { private readonly NativeReader _reader; private uint _offset; private uint _remaining; private char _current; internal Enumerator(NativeReader reader, uint offset) { _reader = reader; _offset = reader.DecodeUnsigned(offset, out _remaining); _current = default(char); } public char Current { get { return _current; } } // Current public bool MoveNext() { if (_remaining == 0) return false; _remaining--; _offset = _reader.Read(_offset, out _current); return true; } // MoveNext public void Dispose() { } // Dispose } // Enumerator } // CharCollection #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct ByteCollection { private readonly NativeReader _reader; private readonly uint _offset; internal ByteCollection(NativeReader reader, uint offset) { _offset = offset; _reader = reader; } public int Count { get { uint count; _reader.DecodeUnsigned(_offset, out count); return (int)count; } } // Count public Enumerator GetEnumerator() { return new Enumerator(_reader, _offset); } // GetEnumerator #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public struct Enumerator { private readonly NativeReader _reader; private uint _offset; private uint _remaining; private byte _current; internal Enumerator(NativeReader reader, uint offset) { _reader = reader; _offset = reader.DecodeUnsigned(offset, out _remaining); _current = default(byte); } public byte Current { get { return _current; } } // Current public bool MoveNext() { if (_remaining == 0) return false; _remaining--; _offset = _reader.Read(_offset, out _current); return true; } // MoveNext public void Dispose() { } // Dispose } // Enumerator } // ByteCollection #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct SByteCollection { private readonly NativeReader _reader; private readonly uint _offset; internal SByteCollection(NativeReader reader, uint offset) { _offset = offset; _reader = reader; } public int Count { get { uint count; _reader.DecodeUnsigned(_offset, out count); return (int)count; } } // Count public Enumerator GetEnumerator() { return new Enumerator(_reader, _offset); } // GetEnumerator #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public struct Enumerator { private readonly NativeReader _reader; private uint _offset; private uint _remaining; private sbyte _current; internal Enumerator(NativeReader reader, uint offset) { _reader = reader; _offset = reader.DecodeUnsigned(offset, out _remaining); _current = default(sbyte); } public sbyte Current { get { return _current; } } // Current public bool MoveNext() { if (_remaining == 0) return false; _remaining--; _offset = _reader.Read(_offset, out _current); return true; } // MoveNext public void Dispose() { } // Dispose } // Enumerator } // SByteCollection #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct Int16Collection { private readonly NativeReader _reader; private readonly uint _offset; internal Int16Collection(NativeReader reader, uint offset) { _offset = offset; _reader = reader; } public int Count { get { uint count; _reader.DecodeUnsigned(_offset, out count); return (int)count; } } // Count public Enumerator GetEnumerator() { return new Enumerator(_reader, _offset); } // GetEnumerator #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public struct Enumerator { private readonly NativeReader _reader; private uint _offset; private uint _remaining; private short _current; internal Enumerator(NativeReader reader, uint offset) { _reader = reader; _offset = reader.DecodeUnsigned(offset, out _remaining); _current = default(short); } public short Current { get { return _current; } } // Current public bool MoveNext() { if (_remaining == 0) return false; _remaining--; _offset = _reader.Read(_offset, out _current); return true; } // MoveNext public void Dispose() { } // Dispose } // Enumerator } // Int16Collection #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct UInt16Collection { private readonly NativeReader _reader; private readonly uint _offset; internal UInt16Collection(NativeReader reader, uint offset) { _offset = offset; _reader = reader; } public int Count { get { uint count; _reader.DecodeUnsigned(_offset, out count); return (int)count; } } // Count public Enumerator GetEnumerator() { return new Enumerator(_reader, _offset); } // GetEnumerator #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public struct Enumerator { private readonly NativeReader _reader; private uint _offset; private uint _remaining; private ushort _current; internal Enumerator(NativeReader reader, uint offset) { _reader = reader; _offset = reader.DecodeUnsigned(offset, out _remaining); _current = default(ushort); } public ushort Current { get { return _current; } } // Current public bool MoveNext() { if (_remaining == 0) return false; _remaining--; _offset = _reader.Read(_offset, out _current); return true; } // MoveNext public void Dispose() { } // Dispose } // Enumerator } // UInt16Collection #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct Int32Collection { private readonly NativeReader _reader; private readonly uint _offset; internal Int32Collection(NativeReader reader, uint offset) { _offset = offset; _reader = reader; } public int Count { get { uint count; _reader.DecodeUnsigned(_offset, out count); return (int)count; } } // Count public Enumerator GetEnumerator() { return new Enumerator(_reader, _offset); } // GetEnumerator #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public struct Enumerator { private readonly NativeReader _reader; private uint _offset; private uint _remaining; private int _current; internal Enumerator(NativeReader reader, uint offset) { _reader = reader; _offset = reader.DecodeUnsigned(offset, out _remaining); _current = default(int); } public int Current { get { return _current; } } // Current public bool MoveNext() { if (_remaining == 0) return false; _remaining--; _offset = _reader.Read(_offset, out _current); return true; } // MoveNext public void Dispose() { } // Dispose } // Enumerator } // Int32Collection #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct UInt32Collection { private readonly NativeReader _reader; private readonly uint _offset; internal UInt32Collection(NativeReader reader, uint offset) { _offset = offset; _reader = reader; } public int Count { get { uint count; _reader.DecodeUnsigned(_offset, out count); return (int)count; } } // Count public Enumerator GetEnumerator() { return new Enumerator(_reader, _offset); } // GetEnumerator #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public struct Enumerator { private readonly NativeReader _reader; private uint _offset; private uint _remaining; private uint _current; internal Enumerator(NativeReader reader, uint offset) { _reader = reader; _offset = reader.DecodeUnsigned(offset, out _remaining); _current = default(uint); } public uint Current { get { return _current; } } // Current public bool MoveNext() { if (_remaining == 0) return false; _remaining--; _offset = _reader.Read(_offset, out _current); return true; } // MoveNext public void Dispose() { } // Dispose } // Enumerator } // UInt32Collection #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct Int64Collection { private readonly NativeReader _reader; private readonly uint _offset; internal Int64Collection(NativeReader reader, uint offset) { _offset = offset; _reader = reader; } public int Count { get { uint count; _reader.DecodeUnsigned(_offset, out count); return (int)count; } } // Count public Enumerator GetEnumerator() { return new Enumerator(_reader, _offset); } // GetEnumerator #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public struct Enumerator { private readonly NativeReader _reader; private uint _offset; private uint _remaining; private long _current; internal Enumerator(NativeReader reader, uint offset) { _reader = reader; _offset = reader.DecodeUnsigned(offset, out _remaining); _current = default(long); } public long Current { get { return _current; } } // Current public bool MoveNext() { if (_remaining == 0) return false; _remaining--; _offset = _reader.Read(_offset, out _current); return true; } // MoveNext public void Dispose() { } // Dispose } // Enumerator } // Int64Collection #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct UInt64Collection { private readonly NativeReader _reader; private readonly uint _offset; internal UInt64Collection(NativeReader reader, uint offset) { _offset = offset; _reader = reader; } public int Count { get { uint count; _reader.DecodeUnsigned(_offset, out count); return (int)count; } } // Count public Enumerator GetEnumerator() { return new Enumerator(_reader, _offset); } // GetEnumerator #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public struct Enumerator { private readonly NativeReader _reader; private uint _offset; private uint _remaining; private ulong _current; internal Enumerator(NativeReader reader, uint offset) { _reader = reader; _offset = reader.DecodeUnsigned(offset, out _remaining); _current = default(ulong); } public ulong Current { get { return _current; } } // Current public bool MoveNext() { if (_remaining == 0) return false; _remaining--; _offset = _reader.Read(_offset, out _current); return true; } // MoveNext public void Dispose() { } // Dispose } // Enumerator } // UInt64Collection #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct SingleCollection { private readonly NativeReader _reader; private readonly uint _offset; internal SingleCollection(NativeReader reader, uint offset) { _offset = offset; _reader = reader; } public int Count { get { uint count; _reader.DecodeUnsigned(_offset, out count); return (int)count; } } // Count public Enumerator GetEnumerator() { return new Enumerator(_reader, _offset); } // GetEnumerator #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public struct Enumerator { private readonly NativeReader _reader; private uint _offset; private uint _remaining; private float _current; internal Enumerator(NativeReader reader, uint offset) { _reader = reader; _offset = reader.DecodeUnsigned(offset, out _remaining); _current = default(float); } public float Current { get { return _current; } } // Current public bool MoveNext() { if (_remaining == 0) return false; _remaining--; _offset = _reader.Read(_offset, out _current); return true; } // MoveNext public void Dispose() { } // Dispose } // Enumerator } // SingleCollection #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct DoubleCollection { private readonly NativeReader _reader; private readonly uint _offset; internal DoubleCollection(NativeReader reader, uint offset) { _offset = offset; _reader = reader; } public int Count { get { uint count; _reader.DecodeUnsigned(_offset, out count); return (int)count; } } // Count public Enumerator GetEnumerator() { return new Enumerator(_reader, _offset); } // GetEnumerator #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public struct Enumerator { private readonly NativeReader _reader; private uint _offset; private uint _remaining; private double _current; internal Enumerator(NativeReader reader, uint offset) { _reader = reader; _offset = reader.DecodeUnsigned(offset, out _remaining); _current = default(double); } public double Current { get { return _current; } } // Current public bool MoveNext() { if (_remaining == 0) return false; _remaining--; _offset = _reader.Read(_offset, out _current); return true; } // MoveNext public void Dispose() { } // Dispose } // Enumerator } // DoubleCollection #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct Handle { public ArraySignatureHandle ToArraySignatureHandle(MetadataReader reader) { return new ArraySignatureHandle(this); } // ToArraySignatureHandle public ByReferenceSignatureHandle ToByReferenceSignatureHandle(MetadataReader reader) { return new ByReferenceSignatureHandle(this); } // ToByReferenceSignatureHandle public ConstantBooleanArrayHandle ToConstantBooleanArrayHandle(MetadataReader reader) { return new ConstantBooleanArrayHandle(this); } // ToConstantBooleanArrayHandle public ConstantBooleanValueHandle ToConstantBooleanValueHandle(MetadataReader reader) { return new ConstantBooleanValueHandle(this); } // ToConstantBooleanValueHandle public ConstantByteArrayHandle ToConstantByteArrayHandle(MetadataReader reader) { return new ConstantByteArrayHandle(this); } // ToConstantByteArrayHandle public ConstantByteValueHandle ToConstantByteValueHandle(MetadataReader reader) { return new ConstantByteValueHandle(this); } // ToConstantByteValueHandle public ConstantCharArrayHandle ToConstantCharArrayHandle(MetadataReader reader) { return new ConstantCharArrayHandle(this); } // ToConstantCharArrayHandle public ConstantCharValueHandle ToConstantCharValueHandle(MetadataReader reader) { return new ConstantCharValueHandle(this); } // ToConstantCharValueHandle public ConstantDoubleArrayHandle ToConstantDoubleArrayHandle(MetadataReader reader) { return new ConstantDoubleArrayHandle(this); } // ToConstantDoubleArrayHandle public ConstantDoubleValueHandle ToConstantDoubleValueHandle(MetadataReader reader) { return new ConstantDoubleValueHandle(this); } // ToConstantDoubleValueHandle public ConstantEnumArrayHandle ToConstantEnumArrayHandle(MetadataReader reader) { return new ConstantEnumArrayHandle(this); } // ToConstantEnumArrayHandle public ConstantEnumValueHandle ToConstantEnumValueHandle(MetadataReader reader) { return new ConstantEnumValueHandle(this); } // ToConstantEnumValueHandle public ConstantHandleArrayHandle ToConstantHandleArrayHandle(MetadataReader reader) { return new ConstantHandleArrayHandle(this); } // ToConstantHandleArrayHandle public ConstantInt16ArrayHandle ToConstantInt16ArrayHandle(MetadataReader reader) { return new ConstantInt16ArrayHandle(this); } // ToConstantInt16ArrayHandle public ConstantInt16ValueHandle ToConstantInt16ValueHandle(MetadataReader reader) { return new ConstantInt16ValueHandle(this); } // ToConstantInt16ValueHandle public ConstantInt32ArrayHandle ToConstantInt32ArrayHandle(MetadataReader reader) { return new ConstantInt32ArrayHandle(this); } // ToConstantInt32ArrayHandle public ConstantInt32ValueHandle ToConstantInt32ValueHandle(MetadataReader reader) { return new ConstantInt32ValueHandle(this); } // ToConstantInt32ValueHandle public ConstantInt64ArrayHandle ToConstantInt64ArrayHandle(MetadataReader reader) { return new ConstantInt64ArrayHandle(this); } // ToConstantInt64ArrayHandle public ConstantInt64ValueHandle ToConstantInt64ValueHandle(MetadataReader reader) { return new ConstantInt64ValueHandle(this); } // ToConstantInt64ValueHandle public ConstantReferenceValueHandle ToConstantReferenceValueHandle(MetadataReader reader) { return new ConstantReferenceValueHandle(this); } // ToConstantReferenceValueHandle public ConstantSByteArrayHandle ToConstantSByteArrayHandle(MetadataReader reader) { return new ConstantSByteArrayHandle(this); } // ToConstantSByteArrayHandle public ConstantSByteValueHandle ToConstantSByteValueHandle(MetadataReader reader) { return new ConstantSByteValueHandle(this); } // ToConstantSByteValueHandle public ConstantSingleArrayHandle ToConstantSingleArrayHandle(MetadataReader reader) { return new ConstantSingleArrayHandle(this); } // ToConstantSingleArrayHandle public ConstantSingleValueHandle ToConstantSingleValueHandle(MetadataReader reader) { return new ConstantSingleValueHandle(this); } // ToConstantSingleValueHandle public ConstantStringArrayHandle ToConstantStringArrayHandle(MetadataReader reader) { return new ConstantStringArrayHandle(this); } // ToConstantStringArrayHandle public ConstantStringValueHandle ToConstantStringValueHandle(MetadataReader reader) { return new ConstantStringValueHandle(this); } // ToConstantStringValueHandle public ConstantUInt16ArrayHandle ToConstantUInt16ArrayHandle(MetadataReader reader) { return new ConstantUInt16ArrayHandle(this); } // ToConstantUInt16ArrayHandle public ConstantUInt16ValueHandle ToConstantUInt16ValueHandle(MetadataReader reader) { return new ConstantUInt16ValueHandle(this); } // ToConstantUInt16ValueHandle public ConstantUInt32ArrayHandle ToConstantUInt32ArrayHandle(MetadataReader reader) { return new ConstantUInt32ArrayHandle(this); } // ToConstantUInt32ArrayHandle public ConstantUInt32ValueHandle ToConstantUInt32ValueHandle(MetadataReader reader) { return new ConstantUInt32ValueHandle(this); } // ToConstantUInt32ValueHandle public ConstantUInt64ArrayHandle ToConstantUInt64ArrayHandle(MetadataReader reader) { return new ConstantUInt64ArrayHandle(this); } // ToConstantUInt64ArrayHandle public ConstantUInt64ValueHandle ToConstantUInt64ValueHandle(MetadataReader reader) { return new ConstantUInt64ValueHandle(this); } // ToConstantUInt64ValueHandle public CustomAttributeHandle ToCustomAttributeHandle(MetadataReader reader) { return new CustomAttributeHandle(this); } // ToCustomAttributeHandle public EventHandle ToEventHandle(MetadataReader reader) { return new EventHandle(this); } // ToEventHandle public FieldHandle ToFieldHandle(MetadataReader reader) { return new FieldHandle(this); } // ToFieldHandle public FieldSignatureHandle ToFieldSignatureHandle(MetadataReader reader) { return new FieldSignatureHandle(this); } // ToFieldSignatureHandle public FunctionPointerSignatureHandle ToFunctionPointerSignatureHandle(MetadataReader reader) { return new FunctionPointerSignatureHandle(this); } // ToFunctionPointerSignatureHandle public GenericParameterHandle ToGenericParameterHandle(MetadataReader reader) { return new GenericParameterHandle(this); } // ToGenericParameterHandle public MemberReferenceHandle ToMemberReferenceHandle(MetadataReader reader) { return new MemberReferenceHandle(this); } // ToMemberReferenceHandle public MethodHandle ToMethodHandle(MetadataReader reader) { return new MethodHandle(this); } // ToMethodHandle public MethodInstantiationHandle ToMethodInstantiationHandle(MetadataReader reader) { return new MethodInstantiationHandle(this); } // ToMethodInstantiationHandle public MethodSemanticsHandle ToMethodSemanticsHandle(MetadataReader reader) { return new MethodSemanticsHandle(this); } // ToMethodSemanticsHandle public MethodSignatureHandle ToMethodSignatureHandle(MetadataReader reader) { return new MethodSignatureHandle(this); } // ToMethodSignatureHandle public MethodTypeVariableSignatureHandle ToMethodTypeVariableSignatureHandle(MetadataReader reader) { return new MethodTypeVariableSignatureHandle(this); } // ToMethodTypeVariableSignatureHandle public ModifiedTypeHandle ToModifiedTypeHandle(MetadataReader reader) { return new ModifiedTypeHandle(this); } // ToModifiedTypeHandle public NamedArgumentHandle ToNamedArgumentHandle(MetadataReader reader) { return new NamedArgumentHandle(this); } // ToNamedArgumentHandle public NamespaceDefinitionHandle ToNamespaceDefinitionHandle(MetadataReader reader) { return new NamespaceDefinitionHandle(this); } // ToNamespaceDefinitionHandle public NamespaceReferenceHandle ToNamespaceReferenceHandle(MetadataReader reader) { return new NamespaceReferenceHandle(this); } // ToNamespaceReferenceHandle public ParameterHandle ToParameterHandle(MetadataReader reader) { return new ParameterHandle(this); } // ToParameterHandle public PointerSignatureHandle ToPointerSignatureHandle(MetadataReader reader) { return new PointerSignatureHandle(this); } // ToPointerSignatureHandle public PropertyHandle ToPropertyHandle(MetadataReader reader) { return new PropertyHandle(this); } // ToPropertyHandle public PropertySignatureHandle ToPropertySignatureHandle(MetadataReader reader) { return new PropertySignatureHandle(this); } // ToPropertySignatureHandle public QualifiedFieldHandle ToQualifiedFieldHandle(MetadataReader reader) { return new QualifiedFieldHandle(this); } // ToQualifiedFieldHandle public QualifiedMethodHandle ToQualifiedMethodHandle(MetadataReader reader) { return new QualifiedMethodHandle(this); } // ToQualifiedMethodHandle public SZArraySignatureHandle ToSZArraySignatureHandle(MetadataReader reader) { return new SZArraySignatureHandle(this); } // ToSZArraySignatureHandle public ScopeDefinitionHandle ToScopeDefinitionHandle(MetadataReader reader) { return new ScopeDefinitionHandle(this); } // ToScopeDefinitionHandle public ScopeReferenceHandle ToScopeReferenceHandle(MetadataReader reader) { return new ScopeReferenceHandle(this); } // ToScopeReferenceHandle public TypeDefinitionHandle ToTypeDefinitionHandle(MetadataReader reader) { return new TypeDefinitionHandle(this); } // ToTypeDefinitionHandle public TypeForwarderHandle ToTypeForwarderHandle(MetadataReader reader) { return new TypeForwarderHandle(this); } // ToTypeForwarderHandle public TypeInstantiationSignatureHandle ToTypeInstantiationSignatureHandle(MetadataReader reader) { return new TypeInstantiationSignatureHandle(this); } // ToTypeInstantiationSignatureHandle public TypeReferenceHandle ToTypeReferenceHandle(MetadataReader reader) { return new TypeReferenceHandle(this); } // ToTypeReferenceHandle public TypeSpecificationHandle ToTypeSpecificationHandle(MetadataReader reader) { return new TypeSpecificationHandle(this); } // ToTypeSpecificationHandle public TypeVariableSignatureHandle ToTypeVariableSignatureHandle(MetadataReader reader) { return new TypeVariableSignatureHandle(this); } // ToTypeVariableSignatureHandle } // Handle #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public readonly partial struct HandleCollection { private readonly NativeReader _reader; private readonly uint _offset; internal HandleCollection(NativeReader reader, uint offset) { _offset = offset; _reader = reader; } public int Count { get { uint count; _reader.DecodeUnsigned(_offset, out count); return (int)count; } } // Count public Enumerator GetEnumerator() { return new Enumerator(_reader, _offset); } // GetEnumerator #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public struct Enumerator { private readonly NativeReader _reader; private uint _offset; private uint _remaining; private Handle _current; internal Enumerator(NativeReader reader, uint offset) { _reader = reader; _offset = reader.DecodeUnsigned(offset, out _remaining); _current = default(Handle); } public Handle Current { get { return _current; } } // Current public bool MoveNext() { if (_remaining == 0) return false; _remaining--; _offset = _reader.Read(_offset, out _current); return true; } // MoveNext public void Dispose() { } // Dispose } // Enumerator } // HandleCollection #if SYSTEM_PRIVATE_CORELIB [CLSCompliant(false)] #endif public partial class MetadataReader { public ArraySignature GetArraySignature(ArraySignatureHandle handle) { return new ArraySignature(this, handle); } // GetArraySignature public ByReferenceSignature GetByReferenceSignature(ByReferenceSignatureHandle handle) { return new ByReferenceSignature(this, handle); } // GetByReferenceSignature public ConstantBooleanArray GetConstantBooleanArray(ConstantBooleanArrayHandle handle) { return new ConstantBooleanArray(this, handle); } // GetConstantBooleanArray public ConstantBooleanValue GetConstantBooleanValue(ConstantBooleanValueHandle handle) { return new ConstantBooleanValue(this, handle); } // GetConstantBooleanValue public ConstantByteArray GetConstantByteArray(ConstantByteArrayHandle handle) { return new ConstantByteArray(this, handle); } // GetConstantByteArray public ConstantByteValue GetConstantByteValue(ConstantByteValueHandle handle) { return new ConstantByteValue(this, handle); } // GetConstantByteValue public ConstantCharArray GetConstantCharArray(ConstantCharArrayHandle handle) { return new ConstantCharArray(this, handle); } // GetConstantCharArray public ConstantCharValue GetConstantCharValue(ConstantCharValueHandle handle) { return new ConstantCharValue(this, handle); } // GetConstantCharValue public ConstantDoubleArray GetConstantDoubleArray(ConstantDoubleArrayHandle handle) { return new ConstantDoubleArray(this, handle); } // GetConstantDoubleArray public ConstantDoubleValue GetConstantDoubleValue(ConstantDoubleValueHandle handle) { return new ConstantDoubleValue(this, handle); } // GetConstantDoubleValue public ConstantEnumArray GetConstantEnumArray(ConstantEnumArrayHandle handle) { return new ConstantEnumArray(this, handle); } // GetConstantEnumArray public ConstantEnumValue GetConstantEnumValue(ConstantEnumValueHandle handle) { return new ConstantEnumValue(this, handle); } // GetConstantEnumValue public ConstantHandleArray GetConstantHandleArray(ConstantHandleArrayHandle handle) { return new ConstantHandleArray(this, handle); } // GetConstantHandleArray public ConstantInt16Array GetConstantInt16Array(ConstantInt16ArrayHandle handle) { return new ConstantInt16Array(this, handle); } // GetConstantInt16Array public ConstantInt16Value GetConstantInt16Value(ConstantInt16ValueHandle handle) { return new ConstantInt16Value(this, handle); } // GetConstantInt16Value public ConstantInt32Array GetConstantInt32Array(ConstantInt32ArrayHandle handle) { return new ConstantInt32Array(this, handle); } // GetConstantInt32Array public ConstantInt32Value GetConstantInt32Value(ConstantInt32ValueHandle handle) { return new ConstantInt32Value(this, handle); } // GetConstantInt32Value public ConstantInt64Array GetConstantInt64Array(ConstantInt64ArrayHandle handle) { return new ConstantInt64Array(this, handle); } // GetConstantInt64Array public ConstantInt64Value GetConstantInt64Value(ConstantInt64ValueHandle handle) { return new ConstantInt64Value(this, handle); } // GetConstantInt64Value public ConstantReferenceValue GetConstantReferenceValue(ConstantReferenceValueHandle handle) { return new ConstantReferenceValue(this, handle); } // GetConstantReferenceValue public ConstantSByteArray GetConstantSByteArray(ConstantSByteArrayHandle handle) { return new ConstantSByteArray(this, handle); } // GetConstantSByteArray public ConstantSByteValue GetConstantSByteValue(ConstantSByteValueHandle handle) { return new ConstantSByteValue(this, handle); } // GetConstantSByteValue public ConstantSingleArray GetConstantSingleArray(ConstantSingleArrayHandle handle) { return new ConstantSingleArray(this, handle); } // GetConstantSingleArray public ConstantSingleValue GetConstantSingleValue(ConstantSingleValueHandle handle) { return new ConstantSingleValue(this, handle); } // GetConstantSingleValue public ConstantStringArray GetConstantStringArray(ConstantStringArrayHandle handle) { return new ConstantStringArray(this, handle); } // GetConstantStringArray public ConstantStringValue GetConstantStringValue(ConstantStringValueHandle handle) { return new ConstantStringValue(this, handle); } // GetConstantStringValue public ConstantUInt16Array GetConstantUInt16Array(ConstantUInt16ArrayHandle handle) { return new ConstantUInt16Array(this, handle); } // GetConstantUInt16Array public ConstantUInt16Value GetConstantUInt16Value(ConstantUInt16ValueHandle handle) { return new ConstantUInt16Value(this, handle); } // GetConstantUInt16Value public ConstantUInt32Array GetConstantUInt32Array(ConstantUInt32ArrayHandle handle) { return new ConstantUInt32Array(this, handle); } // GetConstantUInt32Array public ConstantUInt32Value GetConstantUInt32Value(ConstantUInt32ValueHandle handle) { return new ConstantUInt32Value(this, handle); } // GetConstantUInt32Value public ConstantUInt64Array GetConstantUInt64Array(ConstantUInt64ArrayHandle handle) { return new ConstantUInt64Array(this, handle); } // GetConstantUInt64Array public ConstantUInt64Value GetConstantUInt64Value(ConstantUInt64ValueHandle handle) { return new ConstantUInt64Value(this, handle); } // GetConstantUInt64Value public CustomAttribute GetCustomAttribute(CustomAttributeHandle handle) { return new CustomAttribute(this, handle); } // GetCustomAttribute public Event GetEvent(EventHandle handle) { return new Event(this, handle); } // GetEvent public Field GetField(FieldHandle handle) { return new Field(this, handle); } // GetField public FieldSignature GetFieldSignature(FieldSignatureHandle handle) { return new FieldSignature(this, handle); } // GetFieldSignature public FunctionPointerSignature GetFunctionPointerSignature(FunctionPointerSignatureHandle handle) { return new FunctionPointerSignature(this, handle); } // GetFunctionPointerSignature public GenericParameter GetGenericParameter(GenericParameterHandle handle) { return new GenericParameter(this, handle); } // GetGenericParameter public MemberReference GetMemberReference(MemberReferenceHandle handle) { return new MemberReference(this, handle); } // GetMemberReference public Method GetMethod(MethodHandle handle) { return new Method(this, handle); } // GetMethod public MethodInstantiation GetMethodInstantiation(MethodInstantiationHandle handle) { return new MethodInstantiation(this, handle); } // GetMethodInstantiation public MethodSemantics GetMethodSemantics(MethodSemanticsHandle handle) { return new MethodSemantics(this, handle); } // GetMethodSemantics public MethodSignature GetMethodSignature(MethodSignatureHandle handle) { return new MethodSignature(this, handle); } // GetMethodSignature public MethodTypeVariableSignature GetMethodTypeVariableSignature(MethodTypeVariableSignatureHandle handle) { return new MethodTypeVariableSignature(this, handle); } // GetMethodTypeVariableSignature public ModifiedType GetModifiedType(ModifiedTypeHandle handle) { return new ModifiedType(this, handle); } // GetModifiedType public NamedArgument GetNamedArgument(NamedArgumentHandle handle) { return new NamedArgument(this, handle); } // GetNamedArgument public NamespaceDefinition GetNamespaceDefinition(NamespaceDefinitionHandle handle) { return new NamespaceDefinition(this, handle); } // GetNamespaceDefinition public NamespaceReference GetNamespaceReference(NamespaceReferenceHandle handle) { return new NamespaceReference(this, handle); } // GetNamespaceReference public Parameter GetParameter(ParameterHandle handle) { return new Parameter(this, handle); } // GetParameter public PointerSignature GetPointerSignature(PointerSignatureHandle handle) { return new PointerSignature(this, handle); } // GetPointerSignature public Property GetProperty(PropertyHandle handle) { return new Property(this, handle); } // GetProperty public PropertySignature GetPropertySignature(PropertySignatureHandle handle) { return new PropertySignature(this, handle); } // GetPropertySignature public QualifiedField GetQualifiedField(QualifiedFieldHandle handle) { return new QualifiedField(this, handle); } // GetQualifiedField public QualifiedMethod GetQualifiedMethod(QualifiedMethodHandle handle) { return new QualifiedMethod(this, handle); } // GetQualifiedMethod public SZArraySignature GetSZArraySignature(SZArraySignatureHandle handle) { return new SZArraySignature(this, handle); } // GetSZArraySignature public ScopeDefinition GetScopeDefinition(ScopeDefinitionHandle handle) { return new ScopeDefinition(this, handle); } // GetScopeDefinition public ScopeReference GetScopeReference(ScopeReferenceHandle handle) { return new ScopeReference(this, handle); } // GetScopeReference public TypeDefinition GetTypeDefinition(TypeDefinitionHandle handle) { return new TypeDefinition(this, handle); } // GetTypeDefinition public TypeForwarder GetTypeForwarder(TypeForwarderHandle handle) { return new TypeForwarder(this, handle); } // GetTypeForwarder public TypeInstantiationSignature GetTypeInstantiationSignature(TypeInstantiationSignatureHandle handle) { return new TypeInstantiationSignature(this, handle); } // GetTypeInstantiationSignature public TypeReference GetTypeReference(TypeReferenceHandle handle) { return new TypeReference(this, handle); } // GetTypeReference public TypeSpecification GetTypeSpecification(TypeSpecificationHandle handle) { return new TypeSpecification(this, handle); } // GetTypeSpecification public TypeVariableSignature GetTypeVariableSignature(TypeVariableSignatureHandle handle) { return new TypeVariableSignature(this, handle); } // GetTypeVariableSignature } // MetadataReader } // Internal.Metadata.NativeFormat