31 lines
860 B
C#
31 lines
860 B
C#
|
using System;
|
|||
|
using System.Diagnostics.CodeAnalysis;
|
|||
|
|
|||
|
namespace Spv.Generator
|
|||
|
{
|
|||
|
internal struct ConstantKey : IEquatable<ConstantKey>
|
|||
|
{
|
|||
|
private Instruction _constant;
|
|||
|
|
|||
|
public ConstantKey(Instruction constant)
|
|||
|
{
|
|||
|
_constant = constant;
|
|||
|
}
|
|||
|
|
|||
|
public override int GetHashCode()
|
|||
|
{
|
|||
|
return HashCode.Combine(_constant.Opcode, _constant.GetHashCodeContent(), _constant.GetHashCodeResultType());
|
|||
|
}
|
|||
|
|
|||
|
public bool Equals(ConstantKey other)
|
|||
|
{
|
|||
|
return _constant.Opcode == other._constant.Opcode && _constant.EqualsContent(other._constant) && _constant.EqualsResultType(other._constant);
|
|||
|
}
|
|||
|
|
|||
|
public override bool Equals([NotNullWhen(true)] object obj)
|
|||
|
{
|
|||
|
return obj is ConstantKey && Equals((ConstantKey)obj);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|