File: System\Reflection\Metadata\PortablePdb\PortablePdbVersions.cs
Web Access
Project: src\src\libraries\System.Reflection.Metadata\src\System.Reflection.Metadata.csproj (System.Reflection.Metadata)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
 
namespace System.Reflection.Metadata
{
    internal static class PortablePdbVersions
    {
        /// <summary>
        /// Version of Portable PDB format emitted by the writer by default. Metadata version string.
        /// </summary>
        internal const string DefaultMetadataVersion = "PDB v1.0";
 
        /// <summary>
        /// Version of Portable PDB format emitted by the writer by default.
        /// </summary>
        internal const ushort DefaultFormatVersion = 0x0100;
 
        /// <summary>
        /// Minimal supported version of Portable PDB format.
        /// </summary>
        internal const ushort MinFormatVersion = 0x0100;
 
        /// <summary>
        /// Minimal supported version of Embedded Portable PDB blob.
        /// </summary>
        internal const ushort MinEmbeddedVersion = 0x0100;
 
        /// <summary>
        /// Version of Embedded Portable PDB blob format emitted by the writer by default.
        /// </summary>
        internal const ushort DefaultEmbeddedVersion = 0x0100;
 
        /// <summary>
        /// Minimal version of the Embedded Portable PDB blob that the current reader can't interpret.
        /// </summary>
        internal const ushort MinUnsupportedEmbeddedVersion = 0x0200;
 
        internal const uint DebugDirectoryEmbeddedSignature = 0x4244504d;
 
        internal const ushort PortableCodeViewVersionMagic = 0x504d;
        internal static uint DebugDirectoryEntryVersion(ushort portablePdbVersion) => PortableCodeViewVersionMagic << 16 | (uint)portablePdbVersion;
        internal static uint DebugDirectoryEmbeddedVersion(ushort portablePdbVersion) => (uint)DefaultEmbeddedVersion << 16 | portablePdbVersion;
        internal static string Format(ushort version) => (version >> 8) + "." + (version & 0xff);
    }
}