// <auto-generated/>
#nullable enable
using Microsoft.Diagnostics.DataContractReader;
using Microsoft.Diagnostics.DataContractReader.Contracts;
using Microsoft.Diagnostics.DataContractReader.Generated;
namespace Microsoft.Diagnostics.DataContractReader.Data;
/// <summary>Wraps the <c>MethodDescChunk</c> type.</summary>
partial class MethodDescChunk : global::Microsoft.Diagnostics.DataContractReader.Data.IReadableData
{
private static readonly string[] _typeNames = new[] { "MethodDescChunk" };
[UsesDataDescriptorTypeSize]
public static uint GetSize(Target target)
=> checked((uint)LayoutSet.Resolve(target, _typeNames).InstanceSize);
[DataDescriptorDependency("MethodTable", "pointer")]
public static int GetMethodTableOffset(Target target)
{
LayoutSet layouts = LayoutSet.Resolve(target, _typeNames);
layouts.Select(default, out var type, out _, out var name, "MethodTable");
return type.Fields[name].Offset;
}
[DataDescriptorDependency("Next", "pointer")]
public static int GetNextOffset(Target target)
{
LayoutSet layouts = LayoutSet.Resolve(target, _typeNames);
layouts.Select(default, out var type, out _, out var name, "Next");
return type.Fields[name].Offset;
}
[DataDescriptorDependency("Size", "uint8")]
public static int GetSizeOffset(Target target)
{
LayoutSet layouts = LayoutSet.Resolve(target, _typeNames);
layouts.Select(default, out var type, out _, out var name, "Size");
return type.Fields[name].Offset;
}
[DataDescriptorDependency("Count", "uint8")]
public static int GetCountOffset(Target target)
{
LayoutSet layouts = LayoutSet.Resolve(target, _typeNames);
layouts.Select(default, out var type, out _, out var name, "Count");
return type.Fields[name].Offset;
}
[DataDescriptorDependency("FlagsAndTokenRange", "uint16")]
public static int GetFlagsAndTokenRangeOffset(Target target)
{
LayoutSet layouts = LayoutSet.Resolve(target, _typeNames);
layouts.Select(default, out var type, out _, out var name, "FlagsAndTokenRange");
return type.Fields[name].Offset;
}
public TargetPointer Address { get; }
private readonly Target _target;
private readonly LayoutSet _layouts;
partial void OnInit(Target target, TargetPointer address);
public MethodDescChunk(Target target, TargetPointer address)
{
Address = address;
_target = target;
_layouts = LayoutSet.Resolve(target, _typeNames);
OnInit(target, address);
}
static MethodDescChunk IData<MethodDescChunk>.Create(Target target, TargetPointer address)
=> new MethodDescChunk(target, address);
private TargetPointer _MethodTable__value = default!;
private bool _MethodTable__read;
[DataDescriptorDependency("MethodTable", "pointer")]
public partial TargetPointer MethodTable
{
get
{
if (!_MethodTable__read)
{
_layouts.Select(Address, out var t, out var b, out var n, "MethodTable");
_MethodTable__value = _target.ReadPointerField(b, t, n);
_MethodTable__read = true;
}
return _MethodTable__value;
}
}
private TargetPointer _Next__value = default!;
private bool _Next__read;
[DataDescriptorDependency("Next", "pointer")]
public partial TargetPointer Next
{
get
{
if (!_Next__read)
{
_layouts.Select(Address, out var t, out var b, out var n, "Next");
_Next__value = _target.ReadPointerField(b, t, n);
_Next__read = true;
}
return _Next__value;
}
}
private byte _Size__value = default!;
private bool _Size__read;
[DataDescriptorDependency("Size", "uint8")]
public partial byte Size
{
get
{
if (!_Size__read)
{
_layouts.Select(Address, out var t, out var b, out var n, "Size");
_Size__value = _target.ReadField<byte>(b, t, n);
_Size__read = true;
}
return _Size__value;
}
}
private byte _Count__value = default!;
private bool _Count__read;
[DataDescriptorDependency("Count", "uint8")]
public partial byte Count
{
get
{
if (!_Count__read)
{
_layouts.Select(Address, out var t, out var b, out var n, "Count");
_Count__value = _target.ReadField<byte>(b, t, n);
_Count__read = true;
}
return _Count__value;
}
}
private ushort _FlagsAndTokenRange__value = default!;
private bool _FlagsAndTokenRange__read;
[DataDescriptorDependency("FlagsAndTokenRange", "uint16")]
public partial ushort FlagsAndTokenRange
{
get
{
if (!_FlagsAndTokenRange__read)
{
_layouts.Select(Address, out var t, out var b, out var n, "FlagsAndTokenRange");
_FlagsAndTokenRange__value = _target.ReadField<ushort>(b, t, n);
_FlagsAndTokenRange__read = true;
}
return _FlagsAndTokenRange__value;
}
}
private TargetPointer _FirstMethodDesc__value = default!;
private bool _FirstMethodDesc__read;
[UsesDataDescriptorTypeSize]
public partial TargetPointer FirstMethodDesc
{
get
{
if (!_FirstMethodDesc__read)
{
_FirstMethodDesc__value = Address + _layouts.InstanceSize;
_FirstMethodDesc__read = true;
}
return _FirstMethodDesc__value;
}
}
[DataDescriptorDependency("MethodTable", "pointer")]
[DataDescriptorDependency("Next", "pointer")]
[DataDescriptorDependency("Size", "uint8")]
[DataDescriptorDependency("Count", "uint8")]
[DataDescriptorDependency("FlagsAndTokenRange", "uint16")]
[UsesDataDescriptorTypeSize]
void global::Microsoft.Diagnostics.DataContractReader.Data.IReadableData.EnsureAllFieldsRead()
{
_ = MethodTable;
_ = Next;
_ = Size;
_ = Count;
_ = FlagsAndTokenRange;
_ = FirstMethodDesc;
}
}