File: Debugger\Engine\DkmClrMethodId.cs
Web Access
Project: src\src\ExpressionEvaluator\Core\Test\ResultProvider\Microsoft.CodeAnalysis.ResultProvider.Utilities.csproj (Microsoft.CodeAnalysis.ExpressionEvaluator.ResultProvider.Utilities)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
 
#nullable disable
 
#region Assembly Microsoft.VisualStudio.Debugger.Engine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// References\Debugger\v2.0\Microsoft.VisualStudio.Debugger.Engine.dll
 
#endregion
 
using System;
 
namespace Microsoft.VisualStudio.Debugger.Clr
{
    public readonly struct DkmClrMethodId : IComparable<DkmClrMethodId>, IEquatable<DkmClrMethodId>
    {
        public int CompareTo(DkmClrMethodId other)
        {
            if (this.Token != other.Token)
            {
                if (this.Token < other.Token)
                    return -1;
                else
                    return 1;
            }
            if (this.Version != other.Version)
            {
                if (this.Version < other.Version)
                    return -1;
                else
                    return 1;
            }
            return 0;
        }
 
        public bool Equals(DkmClrMethodId other)
        {
            return (this.CompareTo(other) == 0);
        }
 
        public override bool Equals(object obj)
        {
            return obj is DkmClrMethodId && Equals((DkmClrMethodId)obj);
        }
 
        public static bool operator !=(DkmClrMethodId element0, DkmClrMethodId element1)
        {
            return element0.CompareTo(element1) != 0;
        }
 
        public static bool operator ==(DkmClrMethodId element0, DkmClrMethodId element1)
        {
            return element0.CompareTo(element1) == 0;
        }
 
        public static bool operator >(DkmClrMethodId element0, DkmClrMethodId element1)
        {
            return element0.CompareTo(element1) > 0;
        }
 
        public static bool operator <(DkmClrMethodId element0, DkmClrMethodId element1)
        {
            return element0.CompareTo(element1) < 0;
        }
 
        public static bool operator >=(DkmClrMethodId element0, DkmClrMethodId element1)
        {
            return element0.CompareTo(element1) >= 0;
        }
 
        public static bool operator <=(DkmClrMethodId element0, DkmClrMethodId element1)
        {
            return element0.CompareTo(element1) <= 0;
        }
        public override int GetHashCode()
        {
            return Token ^ ((int)Version);
        }
 
        public readonly int Token;
 
        public readonly uint Version;
 
        public DkmClrMethodId(int Token, uint Version)
        {
            this.Token = Token;
            this.Version = Version;
        }
    }
}