File: _generated\15\Microsoft_Diagnostics_DataContractReader_Data.CMiniMdRW.g.cs
Web Access
Project: src\runtime\src\native\managed\cdac\Microsoft.Diagnostics.DataContractReader.Contracts\Microsoft.Diagnostics.DataContractReader.Contracts.csproj (Microsoft.Diagnostics.DataContractReader.Contracts)
// <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>CMiniMdRW</c> type.</summary>
partial class CMiniMdRW : global::Microsoft.Diagnostics.DataContractReader.Data.IReadableData
{
    private static readonly string[] _typeNames = new[] { "CMiniMdRW" };

    [UsesDataDescriptorTypeSize]
    public static uint GetSize(Target target)
        => checked((uint)LayoutSet.Resolve(target, _typeNames).InstanceSize);

    [DataDescriptorDependency("Schema", "pointer")]
    public static int GetSchemaOffset(Target target)
    {
        LayoutSet layouts = LayoutSet.Resolve(target, _typeNames);
        layouts.Select(default, out var type, out _, out var name, "Schema");
        return type.Fields[name].Offset;
    }

    [DataDescriptorDependency("TableCount", "uint32")]
    public static int GetTableCountOffset(Target target)
    {
        LayoutSet layouts = LayoutSet.Resolve(target, _typeNames);
        layouts.Select(default, out var type, out _, out var name, "TableCount");
        return type.Fields[name].Offset;
    }

    [DataDescriptorDependency("All4ByteColumns", "uint32")]
    public static int GetAll4ByteColumnsOffset(Target target)
    {
        LayoutSet layouts = LayoutSet.Resolve(target, _typeNames);
        layouts.Select(default, out var type, out _, out var name, "All4ByteColumns");
        return type.Fields[name].Offset;
    }

    [DataDescriptorDependency("Tables", "pointer")]
    public static int GetTablesOffset(Target target)
    {
        LayoutSet layouts = LayoutSet.Resolve(target, _typeNames);
        layouts.Select(default, out var type, out _, out var name, "Tables");
        return type.Fields[name].Offset;
    }

    [DataDescriptorDependency("StringHeap", "pointer")]
    public static int GetStringHeapOffset(Target target)
    {
        LayoutSet layouts = LayoutSet.Resolve(target, _typeNames);
        layouts.Select(default, out var type, out _, out var name, "StringHeap");
        return type.Fields[name].Offset;
    }

    [DataDescriptorDependency("BlobHeap", "pointer")]
    public static int GetBlobHeapOffset(Target target)
    {
        LayoutSet layouts = LayoutSet.Resolve(target, _typeNames);
        layouts.Select(default, out var type, out _, out var name, "BlobHeap");
        return type.Fields[name].Offset;
    }

    [DataDescriptorDependency("UserStringHeap", "pointer")]
    public static int GetUserStringHeapOffset(Target target)
    {
        LayoutSet layouts = LayoutSet.Resolve(target, _typeNames);
        layouts.Select(default, out var type, out _, out var name, "UserStringHeap");
        return type.Fields[name].Offset;
    }

    [DataDescriptorDependency("GuidHeap", "pointer")]
    public static int GetGuidHeapOffset(Target target)
    {
        LayoutSet layouts = LayoutSet.Resolve(target, _typeNames);
        layouts.Select(default, out var type, out _, out var name, "GuidHeap");
        return type.Fields[name].Offset;
    }

    public TargetPointer Address { get; }

    private readonly Target _target;

    private readonly LayoutSet _layouts;

    public CMiniMdRW(Target target, TargetPointer address)
    {
        Address = address;
        _target = target;
        _layouts = LayoutSet.Resolve(target, _typeNames);
    }

    static CMiniMdRW IData<CMiniMdRW>.Create(Target target, TargetPointer address)
        => new CMiniMdRW(target, address);

    private TargetPointer _Schema__value = default!;
    private bool _Schema__read;
    [DataDescriptorDependency("Schema", "pointer")]
    public partial TargetPointer Schema
    {
        get
        {
            if (!_Schema__read)
            {
                _layouts.Select(Address, out var t, out var b, out var n, "Schema");
                _Schema__value = b + (ulong)t.Fields[n].Offset;
                _Schema__read = true;
            }
            return _Schema__value;
        }
    }

    private uint _TableCount__value = default!;
    private bool _TableCount__read;
    [DataDescriptorDependency("TableCount", "uint32")]
    public partial uint TableCount
    {
        get
        {
            if (!_TableCount__read)
            {
                _layouts.Select(Address, out var t, out var b, out var n, "TableCount");
                _TableCount__value = _target.ReadField<uint>(b, t, n);
                _TableCount__read = true;
            }
            return _TableCount__value;
        }
    }

    private bool _All4ByteColumns__value = default!;
    private bool _All4ByteColumns__read;
    [DataDescriptorDependency("All4ByteColumns", "uint32")]
    public partial bool All4ByteColumns
    {
        get
        {
            if (!_All4ByteColumns__read)
            {
                _layouts.Select(Address, out var t, out var b, out var n, "All4ByteColumns");
                _All4ByteColumns__value = _target.ReadField<uint>(b, t, n) != 0;
                _All4ByteColumns__read = true;
            }
            return _All4ByteColumns__value;
        }
    }

    private TargetPointer _Tables__value = default!;
    private bool _Tables__read;
    [DataDescriptorDependency("Tables", "pointer")]
    public partial TargetPointer Tables
    {
        get
        {
            if (!_Tables__read)
            {
                _layouts.Select(Address, out var t, out var b, out var n, "Tables");
                _Tables__value = b + (ulong)t.Fields[n].Offset;
                _Tables__read = true;
            }
            return _Tables__value;
        }
    }

    private TargetPointer _StringHeap__value = default!;
    private bool _StringHeap__read;
    [DataDescriptorDependency("StringHeap", "pointer")]
    public partial TargetPointer StringHeap
    {
        get
        {
            if (!_StringHeap__read)
            {
                _layouts.Select(Address, out var t, out var b, out var n, "StringHeap");
                _StringHeap__value = b + (ulong)t.Fields[n].Offset;
                _StringHeap__read = true;
            }
            return _StringHeap__value;
        }
    }

    private TargetPointer _BlobHeap__value = default!;
    private bool _BlobHeap__read;
    [DataDescriptorDependency("BlobHeap", "pointer")]
    public partial TargetPointer BlobHeap
    {
        get
        {
            if (!_BlobHeap__read)
            {
                _layouts.Select(Address, out var t, out var b, out var n, "BlobHeap");
                _BlobHeap__value = b + (ulong)t.Fields[n].Offset;
                _BlobHeap__read = true;
            }
            return _BlobHeap__value;
        }
    }

    private TargetPointer _UserStringHeap__value = default!;
    private bool _UserStringHeap__read;
    [DataDescriptorDependency("UserStringHeap", "pointer")]
    public partial TargetPointer UserStringHeap
    {
        get
        {
            if (!_UserStringHeap__read)
            {
                _layouts.Select(Address, out var t, out var b, out var n, "UserStringHeap");
                _UserStringHeap__value = b + (ulong)t.Fields[n].Offset;
                _UserStringHeap__read = true;
            }
            return _UserStringHeap__value;
        }
    }

    private TargetPointer _GuidHeap__value = default!;
    private bool _GuidHeap__read;
    [DataDescriptorDependency("GuidHeap", "pointer")]
    public partial TargetPointer GuidHeap
    {
        get
        {
            if (!_GuidHeap__read)
            {
                _layouts.Select(Address, out var t, out var b, out var n, "GuidHeap");
                _GuidHeap__value = b + (ulong)t.Fields[n].Offset;
                _GuidHeap__read = true;
            }
            return _GuidHeap__value;
        }
    }

    [System.Diagnostics.CodeAnalysis.SuppressMessage("Performance", "CA1822:Mark members as static", Justification = "Generated lazy initializer; may read instance members.")]
    private partial System.Collections.Immutable.ImmutableArray<global::Microsoft.Diagnostics.DataContractReader.TargetPointer> InitTableSegments(Target target, TargetPointer address);
    private System.Collections.Immutable.ImmutableArray<global::Microsoft.Diagnostics.DataContractReader.TargetPointer> _TableSegments__value = default!;
    private bool _TableSegments__read;
    public partial System.Collections.Immutable.ImmutableArray<global::Microsoft.Diagnostics.DataContractReader.TargetPointer> TableSegments
    {
        get
        {
            if (!_TableSegments__read)
            {
                _TableSegments__value = InitTableSegments(_target, Address);
                _TableSegments__read = true;
            }
            return _TableSegments__value;
        }
    }

    void global::Microsoft.Diagnostics.DataContractReader.Data.IReadableData.EnsureAllFieldsRead()
    {
        _ = Schema;
        _ = TableCount;
        _ = All4ByteColumns;
        _ = Tables;
        _ = StringHeap;
        _ = BlobHeap;
        _ = UserStringHeap;
        _ = GuidHeap;
        _ = TableSegments;
    }

}