| File: Model.cs | Web Access |
| Project: src\runtime\src\native\managed\cdac\gen\Microsoft.Diagnostics.DataContractReader.DataGenerator.csproj (Microsoft.Diagnostics.DataContractReader.DataGenerator) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System; namespace Microsoft.Diagnostics.DataContractReader.DataGenerator; /// <summary> /// The kind of read the generator should emit for a <c>[Field]</c> property. /// </summary> internal enum FieldReadKind { /// <summary><c>target.ReadField<T>(...)</c> -- primitive integer.</summary> Primitive, /// <summary><c>target.ReadField<byte>(...) != 0</c> -- bool stored as byte.</summary> Bool, /// <summary><c>target.ReadPointerField(...)</c>.</summary> Pointer, /// <summary><c>target.ReadNUIntField(...)</c>.</summary> NUInt, /// <summary><c>target.ReadNIntField(...)</c>.</summary> NInt, /// <summary><c>target.ReadCodePointerField(...)</c>.</summary> CodePointer, /// <summary><c>target.ReadDataField<T>(...)</c> -- in-place IData.</summary> DataInPlace, /// <summary><c>target.ReadDataFieldPointer<T>(...)</c> -- pointer to IData.</summary> DataPointer, } /// <summary>The kind of generated member.</summary> internal enum MemberKind { Field, FieldAddress, InstanceDataStart, CustomInit, StaticAddress, StaticReference, ThreadStaticAddress, } /// <summary> /// A single member (property or method) of a <c>[CdacType]</c> class that /// the generator must emit code for. /// </summary> internal sealed record MemberModel( string Name, MemberKind Kind, string DescriptorOrFieldName, string? DescriptorNativeType, string PropertyOrReturnTypeFqn, FieldReadKind ReadKind, string? DataTypeArgumentFqn, bool IsOptional, bool IsNullable, int? RawOffset, bool LittleEndian, bool Writable, string? BoolUnderlyingType, EquatableArray<string> Names, string? CustomInitializerName = null) : IEquatable<MemberModel>; /// <summary> /// A <c>[CdacType]</c>-annotated class to be emitted. /// </summary> internal sealed record CdacTypeModel( string Namespace, string ClassName, string Accessibility, bool IsSealed, bool IsPartial, EquatableArray<string> Names, bool HasTypeHandle, EquatableArray<MemberModel> Members) : IEquatable<CdacTypeModel>;