coords/units hashing refactoring
This commit is contained in:
parent
023c8afb73
commit
a0e8e4265a
15
src/coord.hh
15
src/coord.hh
|
@ -84,6 +84,11 @@ struct LineAndColumn
|
|||
{
|
||||
return line != other.line or column != other.column;
|
||||
}
|
||||
|
||||
friend size_t hash_value(const EffectiveType& val)
|
||||
{
|
||||
return hash_values(val.line, val.column);
|
||||
}
|
||||
};
|
||||
|
||||
struct ByteCoord : LineAndColumn<ByteCoord, LineCount, ByteCount>
|
||||
|
@ -93,11 +98,6 @@ struct ByteCoord : LineAndColumn<ByteCoord, LineCount, ByteCount>
|
|||
: LineAndColumn(line, column) {}
|
||||
};
|
||||
|
||||
inline size_t hash_value(const ByteCoord& val)
|
||||
{
|
||||
return hash_values(val.line, val.column);
|
||||
}
|
||||
|
||||
struct CharCoord : LineAndColumn<CharCoord, LineCount, CharCount>
|
||||
{
|
||||
[[gnu::always_inline]]
|
||||
|
@ -105,11 +105,6 @@ struct CharCoord : LineAndColumn<CharCoord, LineCount, CharCount>
|
|||
: LineAndColumn(line, column) {}
|
||||
};
|
||||
|
||||
inline size_t hash_value(const CharCoord& val)
|
||||
{
|
||||
return hash_values(val.line, val.column);
|
||||
}
|
||||
|
||||
struct ByteCoordAndTarget : ByteCoord
|
||||
{
|
||||
[[gnu::always_inline]]
|
||||
|
|
|
@ -111,6 +111,9 @@ public:
|
|||
explicit constexpr operator ValueType() const { return m_value; }
|
||||
[[gnu::always_inline]]
|
||||
explicit constexpr operator bool() const { return m_value; }
|
||||
|
||||
friend size_t hash_value(RealType val) { return hash_value(val.m_value); }
|
||||
|
||||
private:
|
||||
ValueType m_value;
|
||||
};
|
||||
|
@ -121,8 +124,6 @@ struct LineCount : public StronglyTypedNumber<LineCount, int>
|
|||
constexpr LineCount(int value = 0) : StronglyTypedNumber<LineCount>(value) {}
|
||||
};
|
||||
|
||||
inline size_t hash_value(LineCount val) { return hash_value((int)val); }
|
||||
|
||||
[[gnu::always_inline]]
|
||||
inline constexpr LineCount operator"" _line(unsigned long long int value)
|
||||
{
|
||||
|
@ -135,8 +136,6 @@ struct ByteCount : public StronglyTypedNumber<ByteCount, int>
|
|||
constexpr ByteCount(int value = 0) : StronglyTypedNumber<ByteCount>(value) {}
|
||||
};
|
||||
|
||||
inline size_t hash_value(ByteCount val) { return hash_value((int)val); }
|
||||
|
||||
[[gnu::always_inline]]
|
||||
inline constexpr ByteCount operator"" _byte(unsigned long long int value)
|
||||
{
|
||||
|
@ -155,8 +154,6 @@ inline constexpr CharCount operator"" _char(unsigned long long int value)
|
|||
return CharCount(value);
|
||||
}
|
||||
|
||||
inline size_t hash_value(CharCount val) { return hash_value((int)val); }
|
||||
|
||||
}
|
||||
|
||||
#endif // units_hh_INCLUDED
|
||||
|
|
|
@ -76,8 +76,6 @@ struct ValueId : public StronglyTypedNumber<ValueId, int>
|
|||
}
|
||||
};
|
||||
|
||||
inline size_t hash_value(ValueId val) { return hash_value((int)val); }
|
||||
|
||||
using ValueMap = UnorderedMap<ValueId, Value, MemoryDomain::Values>;
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user